没有 Spring 的 RabbitMQ 队列大小? (java api)

RabbitMQ queue size without Spring? (java api)

我将 Java 客户端与 RabbitMQ 一起使用。我已经看到有关使用 Spring 插件查找队列大小的参考资料,但我没有使用 Spring。是否有一种非 Spring 的方法来获取给定名称的队列的大小?现在我只是在执行 shell 命令 'rabbitmqctl list_queues' 并解析结果——不太好。

您可以启用 http management plugin

rabbitmq-plugins enable rabbitmq_management

然后使用 http API.

如果你像这样执行 http 调用:

http://your_server/api/queues/your_virtual_host/yourqueue

你有关于队列的所有信息,输出是 json 像:

  ... "backing_queue_status": {
    "q1": 0,
    "q2": 0,
    "delta": [
      "delta",
      0,
      0,
      0
    ],
    "q3": 0,
    "q4": 0,
    "len": 0,
    "target_ram_count": 0,
    "next_seq_id": 0,
    "avg_ingress_rate": 0,
    "avg_egress_rate": 0,
    "avg_ack_ingress_rate": 0,
    "avg_ack_egress_rate": 0,
    "mirror_seen": 0,
    "mirror_senders": 0
  },
  "incoming": [],
  "deliveries": [],
  "consumer_details": [],
  "name": "myqueue",
  "vhost": "vhost",
  "durable": true,
  "auto_delete": false,
  "arguments": {},
  "node": "rabbit@lemur01"
}