【发布时间】:2016-12-13 09:50:32
【问题描述】:
我正在尝试从所有使用 JMX 的机器上了解 Cassandra cfstats 信息。这可以使用 OpsCenter 完成,但我不想使用它。我开始构建自己的实用程序。目前,我的 java 程序连接到 JMX 并获取 cfstats 信息,例如estimateKeys、No of SSTables ..等。
我的要求是,这是一个 java jar 文件,将从一个 Cassandra 节点运行,并且应该能够连接到所有机器并使用每个节点各自的 JMX 获取 cfstats。
我打算为此使用 java 驱动程序,因为 java 驱动程序将能够使用 system.peers coumnFamily 连接集群中的所有机器。一旦 java 驱动程序连接到机器,我将使用相应的主机名和 JMX 端口(7199)形成 service:jmx:rmi。然后我将能够使用此信息连接到 NodeProbe。
我的问题是,在使用 java 驱动程序连接到另一个节点后,我是否能够在那里保留状态,并且在形成 service:jmx:rmi url 之后,这个 url 是否真的连接到当前节点 JMX 并从中提取 cfstats 信息当前节点。因为 JMX 主机名将取自 Cassandra-env.sh 文件。有人可以帮助我吗?
这个想法是否可行,或者是否有其他最佳方法可以实现这一目标?
【问题讨论】:
标签: cassandra jmx datastax datastax-java-driver cassandra-2.1