バージョン:
春うさぎ-1.6.10.RELEASE
spring-boot-autoconfigure-1.3.7.RELEASE
RabbitMQを使用しているときに問題が発生しました。メッセージを送信した後、複数のコンシューマーがあり、このコンシューマーは私が作成したリスナーではないことがわかりました。
このコンシューマーのIPとポートを見つけるには、現在このキューにあるコンシューマーを確認する必要があります。
RabbitMQ管理インターフェースhttp:// localhost:15672に直接アクセスし、一部のコンシューマーがここに表示されないという問題を見つけます。
そして、多くの場合、次のように、消費者リストは空です。
現在登録されている消費者のリストを表示するにはどうすればよいですか?APIドキュメントを調査し、効率的な方法を見つけました。
http:// localhost:15672 / api / consumersインターフェースにアクセスすることで、すべてのコンシューマーを現在のRabbitMQに登録できます。
{
"arguments": {},
"prefetch_count": 1,
"ack_required": true,
"exclusive": false,
"consumer_tag": "amq.ctag-ggdoNEKhLKNpb3XoWNmyzhQ",
"queue": {
"name": "XXXX_XXXX_QUEUE",
"vhost": "dev"
},
"channel_details": {
"name": "127.0.0.1:26290 -> 1127.0.0.2:5672 (13)",
"number": 13,
"user": "guest",
"connection_name": "127.0.0.1:26290 -> 1127.0.0.2:5672",
"peer_port": 26290,
"peer_host": "127.0.0.3"
}
}
例として次のデータを取り上げます。peer_hostとpeer_portは、コンシューマーのIPとポートです。
/ api / Consumersインターフェースを使用すると、次の生データを照会でき、すべてのコンシューマーの現在のリストを確認できます。
http:// localhost:15672管理インターフェースに表示されていないコンシューマーは、このインターフェースも戻ります。したがって、問題の特定にこのインターフェイスを使用する方が信頼性が高くなります。
このようにして、招待されていない消費者が正常に識別され、問題が解決されました。
さらに、http:// localhost:15672 / apiドキュメントは、RabbitMQ管理インターフェイスのデータソースであり、最もオリジナルなデータであり、より包括的で信頼性があります。
ビジュアルインターフェイスは便利ですが、いくつかの問題もあります。したがって、それを使用するときは、選択的に選択する必要があります。
コマンドラインからもアクセスできます。
:: Windows
C:> curl -i -u guest:guest http://localhost:15672/api/vhosts
# Unix
$ curl -i -u guest:guest http://localhost:15672/api/vhosts
HTTP/1.1 200 OK
Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)
Date: Mon, 16 Sep 2013 12:00:02 GMT
Content-Type: application/json
Content-Length: 30
[{"name":"/","tracing":false}]
詳細については、RabbitMQ Management HTTP APIにアクセスしてください:http:// localhost:15672 / api