- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在寻找一种解决方案,以便从中央 MBean 服务器中的不同 Java VM 注册 MBean 或整个 MBean 服务器本身,该服务器也应该在单独的 VM 中运行。目标是只有一个中央 MBean 服务器,它包含整个系统的所有 MBean。一个额外的要求是,这就是困难所在 :-),即“客户端”MBean 服务器必须连接/注册到中央 MBean 服务器,而不是其他方式。中央 MBean Server 不需要了解“客户端”MBean Server 的任何知识即可注册。
我只找到了 JMX 示例,其中“主”MBean 服务器连接到“客户端”MBean 服务器并获取它们注册的 MBean,但不是其他方式。不幸的是,用于注册您自己的 MBean 的 registerMBean() 方法仅适用于本地 MBean 服务器,而不适用于 MBeanServerConnection 上的远程 MBean 服务器。在那里,只能使用 createMbean() 方法,这里的问题是,它可以在远程 MBean Server 中注册 MBean,但是您必须在远程 MBean Server 中使用不同的对象,一个本地对象和另一个对象。所以现在的问题是,当本地对象发生某些变化时,变化只是在那里,远程 MBean Server 中注册的 MBean 没有得到这些变化(变量的新值......)。到目前为止,我唯一的解决方案是创建一个循环以注销远程服务器中的 MBean 并创建新的 MBean,以获取对象的实际值。那非常丑陋,而且对性能也不太好。
我希望有人能给我提示,我怎样才能更好地做到这一点。
最佳答案
OpenDMK使用级联服务 提供了完成此操作的完整方法。来自文档:
The cascading service enables you to access the MBeans of a subagent directly through the MBean server of a master agent. The cascading service has been completely overhauled in Java Dynamic Management Kit (Java DMK) 5.1 to allow it to operate over the connector protocols defined by the Java Management Extensions (JMX) Remote API. The legacy cascading service is now deprecated. The examples of the legacy cascading service have been retained in Chapter 25, for reasons of backwards compatibility. However, when using legacy Java DMK connectors, you should use the new CasdingServiceMBean with wrapped legacy connectors rather than relying on the deprecated legacy cascading agent API.
这个库中有一些有趣的零碎部分,它们将被归化到 JMX 2.0 中的标准 Java SE 中。我认为级联服务就是其中之一。一旦您理解了它的工作原理,您可能会得出结论,这是您可以自己实现的东西,尽管 OpenDMK 确实解决了几个棘手的极端情况。我不确定该项目有多活跃,但软件看起来很稳定。
您可以找到文档集 here .此外,我创建了包的 mavenized 项目构建 here .
//尼古拉斯
关于java - 是否可以使用 JMX 在一个中央 MBean 服务器中注册或显示来自不同 VM 的 MBean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710003/
我可以知道应用程序开发人员通常对使用 JMX 感兴趣的典型指标是什么,除了: CPU 使用率 内存消耗 尼古拉斯 最佳答案 我会补充: 类加载器行为 线程 关于jmx - 来自 JMX 的有趣指标,我
是否可以从命令行使用 JMX 在 linux (CentOS) 上运行的进程上获取服务器堆转储? 无法打开 VisualVM,无法安装jmap 最佳答案 可以用这个简单的代码来完成: import c
我必须根据数据库中的条目对 JMX 客户端进行身份验证。因此,我编写了一个自定义的 JMXAuthenticator 实现。 启动我的应用程序时,我可以通过“本地进程”使用 JConsole 访问 M
对于我即将发表的学士论文,我想开发一个工具,从 Apache Flink 收集系统和应用程序数据,并将这些数据以某种“事件”的形式发送到另一个系统。该工具将安装在 Flink 作业和任务管理器节点上。
我正在尝试将 jconsole 连接到通过以下方式调用的 jvm: java \ -Djava.util.logging.config.file=./logging.properties \ -Dco
在 JConsole 中查看 JMX bean 时,它将给定域部分下的所有 bean 呈现为层次结构。 (JVisualVM 与 JConsole MBeans 插件具有相同的行为。) 我意识到 JM
如何配置 CACTI 以监控来自 JMX 的值? 最佳答案 http://forums.cacti.net/post-197459.html有一个很好的教程,介绍如何设置 Cacti 以使用 jmx4
我正在尝试使用 jmx_exporter java 代理( https://github.com/prometheus/jmx_exporter )进行模式匹配和命名普罗米修斯指标。 关于如何在处理
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
看来我过去从来没有让这个工作过。目前,我知道它不起作用。 但是我们启动了 Java 进程: -Dcom.sun.management.jmxremote -Dcom.sun.management.jm
我想知道,我们有没有让开发更容易的框架/库?例如,Apache Mina 或 Netty 使 NIO 编程更容易。 听说过Spring JMX、MX4J,是不是很好用? 最佳答案 我为此使用了 Spr
我正在尝试编写一个应用程序监控工具,我遇到了两个标准,JPDA 和 JMX。他们似乎和我有些相似。有什么不同? 最佳答案 JPDA用于调试 和 JMX用于监控。如果您正在开发监控工具 - 选择是显而易
我已将 jmxtrans 配置为从 "kafka.server":type="BrokerTopicMetrics",name="AllTopicsMessagesInPerSec" 获取值 它有 3
所以我有一个运行 Apache Kafka(测试)的 EC2 服务器。它具有用于 JMX 和 EC2 安全设置的端口 9111,以打开该端口。 我试图在我的 Mac 上运行 JConsole 来读取该
如何将 JMX 指标发送到 statsD 守护进程?我可以看到有一些解决方案,其中有用于轮询 JMX 指标的插件,但我希望更多地将指标推送到一些守护进程,这些守护进程可以聚合并将其存储在某些存储中,例
我想在 tomcat7-maven-plugin 上启用 JMX。如何将 CATALINA_OPTS 传递给插件配置? 最佳答案 两种可能的解决方案(未测试): 在 MAVEN_OPTS 中添加 sy
有没有类似于 Spring JMX 导出器的东西 没有 使用 Spring 框架? SimpleJMX似乎是合理的,但似乎也是一个非常年轻的框架,只有一个人插入。 我需要将一大堆属性、方法和类公开为
我想提取这些数据http://code.google.com/p/memcached-session-manager/wiki/JMXStatistics通过 jmx 但仅使用命令行。 这是因为这是进
当我尝试运行我的应用程序时,出现上述错误。我确信这与我从 log4j 更新到 log4j2 有关,因为如果我不引用 log4j2.xml 文件,错误就会消失。 为什么我会收到此错误? 这是完整的堆栈跟
这与 JMS 和 JMS 提供者的情况类似吗?或者我可以在没有应用程序服务器和 JMX 提供程序的情况下使用 JMX 吗? 最佳答案 绝对是的。 JMX 是标准 JavaSE6 API 的一部分。每个
我是一名优秀的程序员,十分优秀!