RocketMQのクラスターの状態を取得する方法は何ですか?
RocketMQクラスターの状態を取得するには、次の2つの方法があります。
- RocketMQのコマンドラインツールを使用すると、クラスターの状態を取得することができます。具体的なコマンドは次の通りです。
- sh mqadmin クラスターリスト -n <namesrvアドレス>
- 名前サーバのアドレスである。
- このコマンドは、すべてのブローカーとネームサーバーの状態情報を返します。これには、ブローカーのID、IP、バージョン情報、および状態が含まれます。
- RocketMQのJava APIを使用すると、クラスターの状態を取得することができます。具体的なコードは以下の通りです:
- DefaultMQAdminExt admin = new DefaultMQAdminExt();
admin.setNamesrvAddr(“”);try {
admin.start();
ClusterInfo clusterInfo = admin.examineBrokerClusterInfo();
for (BrokerData brokerData : clusterInfo.getBrokerAddrTable().values()) {
String brokerName = brokerData.getBrokerName();
String brokerAddr = brokerData.getBrokerAddrs().get(MixAll.MASTER_ID);
// ブローカーのID、IP、バージョン情報、状態などを出力
System.out.printf(“Broker Name: %s, Broker Address: %sq%n”, brokerName, brokerAddr);
}
} catch (Exception e) {
// 例外処理
} finally {
admin.shutdown();
} - このコードでは、はNameServerのアドレスです。admin.examineBrokerClusterInfo()メソッドを呼び出してクラスタの状態情報を取得し、各BrokerのID、IP、バージョン情報、状態などを順に出力します。
コマンドラインツールを使用する場合でも、Java APIを使用する場合でも、NameServerのアドレスを指定する必要があります。