【问题标题】:Cassandra JMX need to connect all the nodesCassandra JMX 需要连接所有节点
【发布时间】: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


    【解决方案1】:

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

    但是,如果您正在编写工具 - 也许值得检查不同的连接。例如。您可以使用 Jolokia 轻松将 JMX 调用转换为 HTTP

    【讨论】:

    • 感谢您在此 Deniszh 上的宝贵时间。我会检查可行性并通知您。
    • 大家好,对我上面的问题还有其他想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2015-03-14
    • 1970-01-01
    • 2018-05-08
    • 2023-03-24
    • 2012-06-14
    • 2015-03-06
    相关资源
    最近更新 更多