1

私はクラスターと対話して mbean オブジェクト属性 Livedicsspaceused を取得できるクライアントSpring jmxを作成するために使用しています。jmxCassandra

したがって、このCassandraクラスターには 3 つのノードがあり、異なる serviceUrl (それぞれが異なる IP アドレスを持つ) がありました。

ここで、MBeanServerConnectionFactoryBean Bean の作成中に、以下のようにサービス URl を 1 つだけ指定できることに気付きました。

@Bean 
MBeanServerConnectionFactoryBean getConnector() {
    MBeanServerConnectionFactoryBean mBeanfactory = new MBeanServerConnectionFactoryBean();
    try {
        mBeanfactory.setServiceUrl("serviceUrl1");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    mBeanfactory.setConnectOnStartup(false);
    return mBeanfactory;
}

次に、主に以下のようにこれにアクセスしています。

objectName = newObjectName(QueueServicesConstant.MBEAN_OBJ_NAME_LIVE_DISC_USED);
long count = (Long)mBeanFactory.getObject().getAttribute(objectName, QueueServicesConstant.MBEAN_ATTR_NAME_COUNT);

3 つのノードすべてでこの値を取得するにはどうすればよいですか?

4

2 に答える 2

1

3 つの異なるコネクタが必要です。

または、Jolokia Proxyのようなものを使用して複数のサーバーにアクセスすることもできます (JSR 160 の代わりに REST を使用)。

于 2016-02-03T14:29:18.880 に答える