Cassandra JMX需要连接所有节点

时间:2016-08-07 14:49:49

标签: cassandra jmx datastax datastax-java-driver cassandra-2.1

我试图通过使用JMX来了解所有机器上的Cassandra cfstats信息。这可以使用OpsCenter完成,但我不想使用它。我开始构建自己的实用程序。现在,我的java程序连接到JMX并获取cfstats信息,例如estimateKeys,No of SSTables ..etc。

我的要求是,这是一个java jar文件,将从一个Cassandra节点运行,并且应该能够连接到所有机器并使用各自的JMX每个节点获取cfstats。

我计划使用java驱动程序,因为java驱动程序将能够使用system.peers coumnFamily连接集群中的所有计算机。一旦java驱动程序连接到机器,我将使用相应的主机名和JMX端口(7199)形成服务:jmx:rmi。然后我将能够使用此信息连接到NodeProbe。

我的问题是,在使用java驱动程序连接到另一个节点之后,我能够在那里保留状态并在形成服务之后:jmx:rmi url,这个url是否真的连接到当前节点JMX并从中拉出cfstats信息当前节点。因为它将从Cassandra-env.sh文件中获取JMX主机名。有人可以帮助我。

这个想法是否有效或是否有另一种最佳方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

可以使用JMX remotely,但这不是最简单的事情。

但如果您正在编写工具 - 也许值得查看不同的连接。例如。您可以使用Jolokia

轻松地将JMX调用转换为HTTP