Cassandra JMX 需要连接所有的节点
Cassandra JMX need to connect all the nodes
我试图了解所有使用 JMX 的机器的 Cassandra cfstats 信息。这可以使用 OpsCenter 完成,但我不想使用它。我开始构建自己的实用程序。现在,我的 java 程序连接到 JMX 并获取 cfstats 信息,例如 estimateKeys、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 文件中获取。有人可以帮我解决这个问题吗?
这个想法行得通吗?还有其他最佳方法吗?
我试图了解所有使用 JMX 的机器的 Cassandra cfstats 信息。这可以使用 OpsCenter 完成,但我不想使用它。我开始构建自己的实用程序。现在,我的 java 程序连接到 JMX 并获取 cfstats 信息,例如 estimateKeys、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 文件中获取。有人可以帮我解决这个问题吗?
这个想法行得通吗?还有其他最佳方法吗?