【问题标题】:Can I see the count of unacked messages in RabbitMQ via an AMQP client?我可以通过 AMQP 客户端查看 RabbitMQ 中未确认消息的数量吗?
【发布时间】:2020-11-11 01:09:38
【问题描述】:

在 RabbitMQ Web UI 中,我可以看到,对于每个队列,准备好使用的消息数以及正在处理但尚未确认的消息数。

但是,我看不到如何通过 AMQP 客户端获取未确认消息的数量。

例如,AMQP.Queue.message_count/2 function in the Elixir client 使用 the underlying Erlang library 使用 passive: true 重新声明队列并返回 message_countconsumer_count 字段,但 message_count 仅包含“准备好传递”的消息(例如,不等待确认)”。

我的目标是查看我目前有多少积压的消息。就我而言,目前正在处理的那些只是那些准备好处理的部分。

如何使用 AMQP 客户端获取给定 RabbitMQ 队列的未确认消息计数?

【问题讨论】:

    标签: rabbitmq erlang elixir amqp


    【解决方案1】:

    AMQP 0.9-1 在 Declare-OK 消息中没有该信息,我在 RabbitMQ's AMQP extensions 中也看不到。

    如果您的消费者相似,您可以使用近似值 Total = Ready + ConsumerCount * QoS(QoS 是每个消费者的预取计数),考虑到如果 Ready == 0,则近似值是一个上限(因为它可能用于代理没有足够的消息来满足所有消费者)。

    您还有另一种选择,即使用管理插件通过REST API提供的统计数据

    【讨论】:

      猜你喜欢
      • 2015-12-19
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多