java - 获取以某种方式使用 RabbitMQ 中给定队列的 channel

标签 java rabbitmq

我希望复制一些我可以在 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/

相关文章:

java - Hibernate 选择查询优化

python - celery :如何限制队列中的任务数量并在满时停止喂食?

java - 通过tomcat中的vm-option设置属性(本地)

c# - 我应该如何在 RabbitMQ header 中传递字符串值

rabbitmq - 是否有可能在 amqp 中获取未路由的消息?

rabbitmq - 在RabbitMQ中,如何使用特定的 key 消费多条消息或读取队列中的所有消息或交换的所有消息?

.net - RabbitMQ 消费者作为 Windows 服务

java - 资源关闭的差异

java - 如何强制 Eclipse m2e 插件为项目使用 jdk

Java 在 setter 上自动发送事件