使用AMQP协议(包括RabbitMQ实现),您将无法获得100%保证的此类信息。
与消息计数最接近的数字是返回的消息计数
queue.declare-ok(
AMQP.Queue.DeclareOk在Java AMQP客户端库中)。
虽然您收到的邮件计数
queue.declare-ok可能与确切的邮件编号队列相匹配,但是您不能依靠它,因为它不计算在事务处理期间等待确认或已发布但尚未提交的消息。
这实际上取决于您需要哪种精确度。
对于已排队的邮件正文,您可能希望手动提取队列中的所有邮件,查看其正文并将其放回队列。这是您要做的唯一方法。
您可以使用管理插件,RabbitMQ管理HTTP
API和Rabbitmqctl
util 获取有关消息计数的一些信息(请参阅list_queues,list_channels)。
自创建队列以来,您无法获得已发布消息的总数,而且我认为没有人会在无用的情况下实现此类统计信息(仅供参考,消息流的平均速度为每秒10k,您甚至在数千年内都不会达到uint64)。



