我希望复制一些我可以在 RabbitMQ Web UI 中看到的东西——它会告诉我当前连接到给定队列的消费者(以其 channel 的形式)有哪些。
我如何从 RabbitMQ Java API 获知该信息?是否可以?我能找到的最好的方法是如何知道给定队列有多少消费者,但没有比这更好的了。
如果 Java API 无法提供此功能,是否有一些直接且不占用大量 CPU 资源的方法可以使用 RabbitMQ CLI (rabbitmqadmin) 获取该信息?
谢谢
最佳答案
您可以使用此API
:
http://rabbitmqhost:15672/api/queues/{vhost}/{queue_name}
es:
http://localhost:15672/api/queues/%2F/test_3
你将得到的json是:
{
"name": "test_3",
"vhost": "/",
"durable": true,
"auto_delete": false,
"exclusive": false,
"arguments": { },
"node": "rabbit@t-srv-rabbit-cos02",
"consumer_details": [
{
"arguments": { },
"prefetch_count": 0,
"ack_required": false,
"exclusive": false,
"consumer_tag": "amq.ctag-L417KXSKpmghjHXmRpcHkw",
"queue": {
"name": "test_3",
"vhost": "/"
},
"channel_details": {
"name": "127.0.0.1:50427 -> 127.0.0.1:5672 (5)",
"number": 5,
"user": "test",
"connection_name": "127.0.0.1:50427 -> 127.0.0.1:5672",
"peer_port": 50427,
"peer_host": "127.0.0.1"
}
}
],
关于Java你可以使用HOP (RabbitMQ HTTP API client for Java, Groovy, and other JVM languages)
关于java - 获取以某种方式使用 RabbitMQ 中给定队列的 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37962076/