jvm能识别什么字符集_识别JVM –比预期要难

jvm能识别什么字符集

空白的身份证标签上白色隔离 在Plumbr,我们花费了上个月的时间来为将来的重大改进奠定基础。 此类构件之一是为JVM添加唯一标识符,以便将来自同一JVM的所有会话链接在一起。

尽管一开始似乎是一项琐碎的任务,但是当查看JVM捆绑的jps命令的输出时,围绕该问题的复杂性开始令人头疼,该命令列出了我的机器中当前正在运行的所有Java进程:

My Precious:tmp my$ jps
1277 start.jar
1318 Jps
1166

上面列出了jps命令的输出,列出了我的机器上当前正在运行的所有Java进程。 如果您不熟悉该工具,它将在左侧列出所有进程的进程ID,并在右侧列出所有进程的名称。 显然,唯一一个以有意义的名称列出自己的人就是jps本身。 另外两个不太礼貌。 隐藏在start.jar首字母缩写后面的是Jetty实例,而完全匿名的实际上是Eclipse。 我的意思是,真的– Java世界上最大的IDE甚至不愿意在标准Java工具中用名称列出自己吗?

因此,一眼了解内置工具的最新技术,就可以回顾一下我们当前的要求。 我们当前的解决方案是通过进程ID +计算机名称组合来标识JVM。 这有一个明显的缺点-每当进程死掉时,它的轮回就不会从内核获得相同的ID。 因此,每当JVM Plumbr监视的监视重新启动或终止时,我们都会失去跟踪,无法将后续调用绑定在一起。 对于监视工具来说,这显然不是合理的行为,因此我们继续寻找更好的解决方案。

接下来的明显步骤是三个月前,当时我们允许用户通过-Dplumbr.application.name = my-precious-jvm启动参数指定计算机的名称。 看起来似乎很明智,但在这三个月中,只有2%的用户实际上不愿意指定此参数。 因此,现在该回到绘图板上,看看在尝试将唯一且易于阅读的标识符自动绑定到JVM实例时,我们有哪些选择。

我们的第一种方法是使用main()方法获取类的名称,并将其用作标识符。 当我们在包含四个不同的Jetty实例的开发箱中启动构建时,立即出现的弊端很快就会显现出来–您立刻拥有四个不同的JVM,它们都在同一个不太唯一的标识符下进行绑定。

下一个尝试是解析应用程序的内容并从部署描述符中识别应用程序–毕竟, Plumbr监视的大多数应用程序都打包为WAR / EAR捆绑软件,因此这将是有意义的,并使用捆绑软件中的信息。 实际上,绝大多数工程师的确在web.xmlapplication.xml<display-name>参数中给出了有意义的名称。

这解决了部分问题–当所有四个Jetty实例都运行具有不同<display-name>的应用程序时,它们将显示为唯一。 确实如此,直到我们的登台环境表明情况并非总是如此。 我们在同一台计算机上有多个不同的Plumbr Server实例,它们使用不同的应用程序服务器,但是使用相同的<display-name>参数部署相同的WAR文件。 您可能会猜到,这再次扼杀了此类ID的唯一性。

另一个引起问题的事实是,有一些应用程序服务器正在运行多个Web应用程序-将多个WAR文件部署到容器中后会发生什么?

因此,我们不得不进一步挖掘。 为了区分在同一台机器上运行同一应用程序的多个JVM,我们添加了启动文件夹以保证标识符的唯一性。 但是多次战争的问题仍然存在。 为此,我们回到了最初的假设,即使用主类名称作为标识符。

还有一些技术上的细微差别,例如区分用于ID的实际哈希值和相同哈希值的用户友好版本,现在,我们提供了一种解决方案,它将在您监视的JVM列表中显示类似的内容:

虚拟机 由于
青蒿素分期 自助服务(WAR) 2014年7月7日11:45
青蒿素分期 网上商店(WAR) 2014年8月7日18:30
芳纶 com.ringbearer.BatchProcessor 01.01.2001 00:00


因此,实际上,我们可以提出一个不错的解决方案,并在其他所有方法均失败的情况下使用-Dplumbr.application.name参数进行手动命名。 仍然存在一个问题–为什么JVM工具和API完全缺少系统管理员通常需要的东西?

翻译自: https://www.javacodegeeks.com/2014/07/identifying-jvm-trickier-than-expected.html

jvm能识别什么字符集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idf和adf_ADF:弹出窗口,对话框和输入组件

idf和adf在本文中&#xff0c;当我们有一个af&#xff1a;popup包含af&#xff1a;dialog并在其中包含输入组件时&#xff0c;我想重点介绍一个非常常见的用例。 实现此用例时&#xff0c;需要注意一些陷阱。 让我们考虑一个简单的示例&#xff1a; <af:popup id"p1&…

自制串口示波器小工具

因为博主喜欢玩嵌入式&#xff0c;经常与各种硬件打交道&#xff0c;常常需要采集下位机的信号&#xff0c;无奈学生党&#xff0c;买不起示波器&#xff0c;自己用python写了一个串口示波器的上位机&#xff0c;可以很简单的和下位机配合组成示波器&#xff0c;效果如图&#…

ELK堆栈入门

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 好的设计原则要求微服务架构是可观察的&#xff0c;并提供集中的监视工具。 该工具使开发团队…

speex在stm32f407单片机上的移植

最近做的网络语音的项目需要用到speex中的一些功能&#xff0c;查了一下资料发现移植给mcu的经验大多零零碎碎&#xff0c;自己捣鼓了一晚上总算是移植好了&#xff0c;写个博客记录一下。1.获取speex源码 官方下载&#xff1a; 官方地址 博主移植用的源码以及移植好的工程下…

vmware网络桥接模式无法上网的解决办法

1.vmware->编辑->虚拟网络编辑器->桥接模式->选择有线网卡 2.VMware-虚拟机设置-网络适配器-桥接模式-复制物理网络连接状态、启动时连接 3.重启虚拟机&#xff0c;完成 如果出现连接到网络但是无法上网的情况&#xff0c;还需做如下处理 1.sudo gedit /etc/res…

oracle idm_深入了解Oracle IDM审核

oracle idm在处理敏感信息的任何产品中&#xff0c; 报告都是至关重要的功能。 同样适用于身份和访问管理工具。 Oracle IDM的审核模块是其OOTB报告功能的基础。 让我们快速了解一下审核引擎以及它如何促进OIM中的报告功能。 这里介绍的用例很简单– 在OIM中更改为用户记录。 …

C语言编写贪吃蛇游戏

自己用C语言编写一个贪吃蛇游戏&#xff0c;效果如图&#xff1a; 源代码可免费下载&#xff0c;传送门如下&#xff1a; 点击下载贪吃蛇游戏和源代码

两个常见的并发错误

作为Baeldung的编辑&#xff0c;我很高兴与一位作者一起撰写有关Java通用并发陷阱的文章。 这是一本不错的书&#xff0c;但是假设开发人员具有一定的能力。 我已经看到了几件即时并发失败的事情。 它们很容易添加到代码中&#xff0c;并保证为您提供奇怪的结果。 开发人员仍会…

AWS Loft的数据库周

这是我的笔记&#xff1a; https://databaseweekoctober2019sf.splashthat.com AWS上的数据库&#xff1a;正确工作的正确工具 在许多此类谈话中&#xff0c;我并没有做过深刻的记录。 我正在关注重点。 PostgreSQL排在MySQL之后。 AWS上8种类型的数据库&#xff1a; 关系…

Log4j Bug –减慢您的应用程序

最近&#xff0c;我们正在对流行的SaaS应用程序进行故障排除。 该应用程序间歇性地减慢了速度。 要从问题中恢复&#xff0c;必须重新启动应用程序。 在高流量期间&#xff0c;此应用有时会变慢&#xff1b; 有时在交通繁忙时也是如此。 没有凝聚力模式。 这种应用程序变慢并重…

javafx透明边框_JavaFX技巧6:使用透明颜色

javafx透明边框为用户界面元素选择正确的颜色始终是一个很大的挑战&#xff0c;但是当您开发可重用的框架控件时&#xff0c;开发人员就无法控制使用它们的应用程序的外观和感觉&#xff0c;这甚至更具挑战性。 尽管您可能总是将元素添加到默认的灰色背景之上&#xff0c;但是嵌…

win10 更新 英特尔显示器音频 后显示器音箱没有声音

问题 如题&#xff0c;win10系统更新后显示器音箱没有声音&#xff0c;且右击桌面声音查看播放设备 &#xff08;说明&#xff1a;这是在解决问题之后截的图&#xff0c;没解决前&#xff0c;只有一个“扬声器/听筒”&#xff0c;原先是存在BenQ LCD的&#xff09; 解决过…

unity ppr_智能自动PPR更改事件策略

unity pprADF开发人员普遍认为&#xff0c;将迭代器绑定更改事件策略设置为ppr在性能方面不是一件好事&#xff0c;因为此策略会强制框架刷新每个请求上绑定到此迭代器的所有属性绑定。 这不是真的&#xff01; 框架仅刷新在请求期间已更改的属性和依赖于已更改属性的属性。 …

如何构建一个Maven插件

使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 今天尝试Okta。 由于其插件生态系统的普及&#xff0c;Apache Maven仍然是Java领域中最流行的构建工具。 很容易找到一个现有的插件来…

javafx中css选择器_JavaFX技巧12:在CSS中定义图标

javafx中css选择器当您是像我这样来自Swing的UI开发人员时&#xff0c;您很有可能仍在代码中直接设置图像/图标。 最可能是这样的&#xff1a; import javafx.scene.control.Label; import javafx.scene.image.ImageView;public class MyLabel extends Label {public MyLabel(…

python去除图像光照不均匀_CVPR 2020 | 从重建质量到感知质量:用于低光照增强的半监督学习方法...

CVPR 2020 | 从重建质量到感知质量&#xff1a;用于低光照增强的半监督学习方法Code: https://github.com/flyywh/CVPR-2020-Semi-Low-Light1背景本篇为大家介绍我们组被2020年IEEE国际计算机视觉与模式识别会议(CVPR 2020)接收的工作《From Fidelity to Perceptual Quality: A…

多层陶瓷电容器用处_【科普贴】多层陶瓷电容器的制造工序,你知道吗?

本文将向大家介绍多层陶瓷电容器的结构及制造工序。多层陶瓷电容器的基本结构电容器用于储存电荷&#xff0c;其最基本结构如图1所示&#xff0c;在2块电极板中间夹着介电体。图1. 电容器的基本结构电容器的性能指标也取决于能够储存电荷的多少。多层陶瓷电容器为了能够储存更多…

分段式多级离心泵_离心泵与多级离心泵工作原理

离心泵工作原理&#xff1a;离心泵工作时&#xff0c;液体注满泵壳&#xff0c;叶轮高速旋转&#xff0c;液体在离心力作用下产生高速度&#xff0c;高速液体经过逐渐扩大的泵壳通道&#xff0c;动压头转变为静压头。性能特点&#xff1a;高效节能&#xff1a;泵有高效的水力形…

牛客网数据开发题库_数据库刷题—牛客网(21-30)

21.查找所有员工自入职以来的薪水涨幅情况&#xff0c;给出员工编号emp_no以及其对应的薪水涨幅growth&#xff0c;并按照growth进行升序CREATE TABLE employees ( emp_no int(11) NOT NULL, birth_date date NOT NULL, first_name varchar(14) NOT NULL, last_name varchar(16…

弹性堆栈介绍

当您运行对公司至关重要的软件时&#xff0c;您将无法获得仅用于分析一段时间前发生的事情的日志&#xff0c;让客户端告诉您您的应用程序已损坏&#xff0c;而您甚至不知道发生了什么是真实的问题。 解决该问题的方法之一是使用监视和日志记录。 大多数应用程序都将具有日志记…