微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 jmx 和 java 获取 kafka mbeans

如何解决使用 jmx 和 java 获取 kafka mbeans

我正在尝试使用 Java 代码(消费者或生产者)获取 Kafka 的 mbean,就像它们出现在 jconsole 中一样 在 jconsole 中,我可以看到 mbean 的名称(例如:objetName:kafka.consumer:type=consumer-fetch-manager-metrics,client-id=consumer-1

这是我的代码

JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9998/jmxrmi");

端口就像我设置的配置文件 (server.properties) 中的一样(我在 Kafka 配置文件(SET JMX_PORT=9098)中设置了端口) ,我也尝试使用我的 Kafka 端口(9092),但是我得到了正在使用的地址 -

 bean=new ObjectName("kafka.consumer:type=consumer-coordinator-metrics,client-id=consumer-1");
MBeanInfo info= connection.getMBeanInfo(bean);

我收到 InstanceNotFoundException

当我使用此代码时:

domains=connection.getDomains();

我获得了除 kafka.consumer 之外的所有域(即 java.nio,java.util.logging,java.lang .. 等) 但不是 kafka.server 即使我可以在 Jconsole 中看到 kafka.consumer mbean ..

但是,我不知道如何访问 JMXServiceURL: 我试图给出以下内容:新

我也试过这个:

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();

但是在我获得服务器 bean 之后,我看不到 Kafka mbeans(只是我创建的其他自定义 mbeans 或其他但不是 Kafka mbeans)

我认为 Kafka 在某些我无法理解的端口中将端口暴露给 jconsole

有什么想法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。