Using delay plug-ins causes consumers to lose messages #296
-
In my business, first of all, there is an ordinary consumer A (non - delayed exchange). However, due to the nature of the business itself, after receiving these messages, they will be immediately sent to a delayed queue (the currently set delay time is 1 minute). Then another consumer B will consume these delayed messages and execute the actual business logic. The current situation is as follows: Consumer A received 14 messages and successfully sent these 14 messages to the delayed queue (both can be proved by ELK logs). Expected behavior Does the delayed queue plug - in itself have such a mechanism that can lead to this kind of problem? (I personally don't think so, but I'm here to ask for confirmation.) 我的业务中,首先有一个普通的消费者A(非延迟 exchange),但是因为业务本身的缘故,在收到这些消息后,会立马发送到一个延迟队列中(目前设置的延迟时间是 1 分钟),再通过另一个消费者B去消费这些延迟后的消息,并且执行实际的业务逻辑。 消费者 A 收到了 14 条消息,并且成功将这 14 条消息发送至延迟队列(均有 ELK 日志可以证明) 延迟队列插件本身有这样的机制会导致这种问题吗?(我个人认为是不会,但是来求助确认下) |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Version info:
|
Beta Was this translation helpful? Give feedback.
-
RabbitMQ 3.8.x has reached EOL years ago. This plugin cannot affect consumers. Publishers in AMQP 0-9-1 are entirely unaware of consumers. All this plugin does is republishing message. Perhaps your consumers cannot handle the deliveries and fail, thus closing the connection or channel. See logs and take a traffic capture to see what is really send on the wire. Firehose can also potentially be useful, it must be enabled on the node that accepts published messages routed to this exchange. |
Beta Was this translation helpful? Give feedback.
RabbitMQ 3.8.x has reached EOL years ago.
This plugin cannot affect consumers. Publishers in AMQP 0-9-1 are entirely unaware of consumers. All this plugin does is republishing message.
Perhaps your consumers cannot handle the deliveries and fail, thus closing the connection or channel.
See logs and take a traffic capture to see what is really send on the wire. Firehose can also potentially be useful, it must be enabled on the node that accepts published messages routed to this exchange.