我试图通过使用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主机名。有人可以帮助我。
这个想法是否有效或是否有另一种最佳方法来实现这一目标?