RabbitMQ队列窥视

RabbitMQ队列窥视,rabbitmq,Rabbitmq,我是RabbitMQ新手,我对管理插件中的“获取消息”选项有疑问。它表示“单击“获取消息”将使用队列中的消息。如果设置了requeue,则消息将重新添加到队列中,但不会保留排序,并将设置“重新传递” 说 在rabbit的下一个版本(v2.6.1之后)中,订单将不会更改 在重新设置消息时被销毁。消息将被重新发送到 在队列的前面,这意味着你可以“偷看”队列的头部 队列您可以使用管理界面或AMQP 客户需要这样做 那么,为什么管理插件说不会保留订单呢?我只是想知道哪一个是正确的 谢谢 我收到了Rab

我是RabbitMQ新手,我对管理插件中的“获取消息”选项有疑问。它表示“单击“获取消息”将使用队列中的消息。如果设置了requeue,则消息将重新添加到队列中,但不会保留排序,并将设置“重新传递”

在rabbit的下一个版本(v2.6.1之后)中,订单将不会更改 在重新设置消息时被销毁。消息将被重新发送到 在队列的前面,这意味着你可以“偷看”队列的头部 队列您可以使用管理界面或AMQP 客户需要这样做

那么,为什么管理插件说不会保留订单呢?我只是想知道哪一个是正确的

谢谢


我收到了RabbitMQ团队的回复。他们是这么说的

在25/04/13 01:05,普拉齐写道:

那么,为什么管理插件说不会保留订单呢?我是 只是想知道哪一个是正确的

管理插件似乎没有得到更新。我会解决的。 谢谢你指出这一点

干杯,西蒙

-- 西蒙·麦克马伦
RabbitMQ,VMware

管理插件错误。

正如RabbitMQ团队的回答所说,您的问题的答案是管理插件是错误的。该行为在2.6.1中进行了更改,以将消息重新排队,使其尽可能接近原始顺序—在这种情况下,几乎可以肯定消息将位于队列的最前面

小心副作用。


然而,正如所指出的,“偷看”是一个听起来相当温和的术语,用于描述实际发生的事情:消息(无论多么短暂)从队列中移除,然后放回队列。在这短暂的一段时间内,可能会向消费者发送另一条消息,在这种情况下,您的“偷看”消息仍会返回到头部,但消息可能会被无序处理。

解决这一问题的最佳方法可能是自己测试它。这应该不会太难实现,只需在消息体中添加一个增量数字。我也很想知道这一点。我用100多条消息测试了同样的方法,效果很好!