【问题标题】:JMX for Cloud Applications用于云应用程序的 JMX
【发布时间】:2012-04-14 00:09:52
【问题描述】:

是否有通过 JMX 管理动态配置服务器的集群的解决方案?

在使用一组已知的服务器时,JMX 似乎工作正常 - 输入主机名以连接、连接、更改设置和查看指标,每个人都很高兴。

如果您拥有整个应用程序实例集群,并且想要更改该集群中所有实例的一个设置,会发生什么情况?是否有任何解决方案可以让您一次更改所有实例,也许是通过某种服务注册表?

【问题讨论】:

    标签: java configuration amazon-ec2 cloud jmx


    【解决方案1】:

    看看OpenDMK。这是Java Dynamic Management Kit 的开源版本。它为 JMX 提供了一个Discovery Service。引用文档:

    发现服务使您能够发现 Java 动态管理 网络中的代理。此服务依赖于发现客户端对象 发送多播请求以查找代理。为了 发现时,代理必须在其中注册发现响应者 MBean 服务器。应用程序还可以使用发现监视器 检测发现响应程序何时启动或停止。

    至于同时对所有服务器进行更改,如果您实施发现服务(或类似的服务),您将能够快速编译一个 JMXServiceURLs 列表,该列表又可用于生成列表JMXConnectors 的列表,因此是连接的 MBeanServerConnections 的列表。从那里开始,围绕该列表创建一个多路复用包装器应该足够简单,它将针对包装器的操作委托给每个远程 JMX 实例。 (错误处理和超时可能有点棘手......)

    您甚至可以考虑编写一个 MBeanServerInterceptor 来创建一个虚拟 MBeanServer,它看起来类似于 MBeanServer,但实际上是上述多路复用器的伪装。

    //尼古拉斯

    【讨论】:

    • 谢谢,我会看看 OpenDMK。遗憾的是 AWS EC2 是我的目标环境,它不允许多播。
    • 其实这不是一段很复杂的代码。您可以调整它以使用亚马逊消息服务。当你有工作的时候你能回帖吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多