为什么RabbitMQ在消息速率上显示活动,而在队列消息上不显示?

uinbv5nw  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(2)|浏览(648)

我有这个问题,我想知道我的兔子工作得很好。
我不会发送消息,所以,我不是100%肯定是正确发送的。但问题是这样的。
在所有配置和所有....
我在RabbitMQ网站管理器上看到

当我应该发送一条消息时,我在“消息率”图表上看到活动,但在“排队的消息”上什么都没有。
坦率地说,我不知道发生了什么事,是不是太快了,不需要排队的消息?或什么是错误的配置?
知道其中的区别吗?

  • 谢谢-谢谢
xdyibdwo

xdyibdwo1#

如果RabbitMQ接收到不可路由的消息,它会丢弃该消息。因此,当消息被接收时,它不会排队。
您可以配置Alternate Exchanges以捕获此类消息。

mv1qrgav

mv1qrgav2#

就我而言,

情况1:

rabbitTemplate.convertAndSend中的Exchange未正确设置时--消息未发送到正确的队列--Queued messages始终为
然而,Message rates不是零,它确实显示有消息被发送。
这与另一个答案的意思相对应:
如果RabbitMQ接收到不可路由的消息,则丢弃该消息。

情况2:

当我的rabbitTemplate.convertAndSend中的Exchange确实设置正确时--消息被发送到正确的队列--Queued messages正在排队该消息。
一切都很好。

情况3:

(接情形2)
现在,我打开receiver service,其中包含@RabbitListener
Queued messages立即下降到0,并且不会再上升
但是消息的传输仍然工作正常。

情况4:

(接情形2)
现在,我将receiver service更改为使用rabbitTemplate.receiveAndConvert
手动receive通过使用循环每隔2秒从queue接收消息。

  • (消息也是sentsender service每隔2s循环一次,与前面的情况相同)

现在Queued messages保持不变-一条直线

  • (这取决于在receiver service启动之前,您已经排队了多少条消息,在我的情况下是1,然后它停留在1)。

结论:

我怀疑,当消息消耗得太快时,Queued messages只会显示0。

这与OP所说的一致:
不需要对消息进行排队是不是太快了?
(or,我可能会搞砸RabbitMQ中的一些设置,导致错误的结论。我不这么认为,但idk,我不熟悉RabbitMQ。)

相关问题