Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Zookeeper的JMX客户端_Java_Jmx_Apache Zookeeper_Jmxmp - Fatal编程技术网

Java Zookeeper的JMX客户端

Java Zookeeper的JMX客户端,java,jmx,apache-zookeeper,jmxmp,Java,Jmx,Apache Zookeeper,Jmxmp,我正在尝试为Zookeeper实例编写一个用于定制监控web应用程序的JMXJava客户端。根据文件中的规定 在本练习中,我使用以下参数在Windows 7 Enterprise上以独立模式本地运行Zookeeper intance:- -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.su

我正在尝试为Zookeeper实例编写一个用于定制监控web应用程序的JMXJava客户端。根据文件中的规定

在本练习中,我使用以下参数在Windows 7 Enterprise上以独立模式本地运行Zookeeper intance:-

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.local.only=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.port=10010 
-Dzookeeper.jmx.log4j.disable=false
运行zookeeper intance后,我能够使用正确显示所有统计信息的连接到JMX bean:-

问题

尝试使用自己的代码连接时,我收到
java.net.ConnectException:连接被拒绝:connect
错误。我正在尝试的代码:-

public static void main(String[] args) throws Exception {

    // service:jmx:rmi:///jndi/rmi://#{host}:#{port}/jmxrmi
    JMXServiceURL url = new             JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:10010/jmxrmi");

    // This throws java.net.ConnectException !!!
    JMXConnector jmxConnector = JMXConnectorFactory.connect(url);

    MBeanServerConnection mbeanServerConnection = jmxConnector.getMBeanServerConnection();
   ObjectName mbeanName = new     ObjectName("org.apache.ZooKeeperService:name0=StandaloneServer_port2181");
ZooKeeperServerMXBean newProxyInstance =   MBeanServerInvocationHandler.newProxyInstance(mbeanServerConnection,
        mbeanName, ZooKeeperServerMXBean.class, true);
System.out.println("Created zoo mbean proxy");
System.out.println(newProxyInstance.getAvgRequestLatency());

}
在尝试使用Java Visual VM进行连接时遇到相同的问题

使用Java代码连接Zookeeper MBean的正确方法是什么

更新1

有一个4年未解决的问题似乎在说有两种端口发挥作用——jmx端口和rmi端口。rmi端口是随机生成的&我想这就是创建连接时所需要的

但是JConsole是如何连接的呢

更新2

这说明通过RMI协议与远程JMX服务器通信可能是个问题,建议改用JMXMP(JMX消息传递协议)。
现在我该怎么做呢?

您想要获得什么样的指标?这不正是我们应该做的吗?@Tombart-是的。但是我们不确定是否使用它,原因有很多-1。我们已经有了一个基于web的监控/管理应用程序,更喜欢在那里插入ZK管理。2.参展商gihub页面上写着:“参展商现在独立了!”。看起来它现在没有得到积极的支持/维护。3.4.参展商的用户界面看起来并不吸引人——至少对我来说是这样。我们正在寻找与我们现有的一致的UI/UX。@Tombart-我想要的度量/功能-ZK ensemble info,对于屏幕截图中提到的每个集成成员数据点,能够重置统计信息/延迟,更改计时时间。大多数监控插件用于获取统计信息
echo mntr | nc localhost 2181
。是的,在不改变方向盘的情况下改进参展商的绝佳机会。@Tombart-是的。我正在切换回使用4个字母的命令(尽管解析它们的响应很痛苦)。该文件称3.5将配备嵌入式jetty,该jetty将公开端点以执行4LC。希望响应是json,这可能会简化解析部分。