Rabbitmq连接重置导致消息被调度两次



我有一个批处理作业,该作业被划分为多个小消息并推送到队列,多个侦听队列的工作人员将拾取并处理这些消息。

当连接重置如下图所示发生时,即使第一个工作程序以前已经拾取并仍在处理,另一个工作程序实例也拾取了相同的消息。

ERROR org.springframework.amqp.rabbit.connection.CachingConnectionFactory$DefaultChannelCloseLogger:Channel shutdown: connection error
com.rabbitmq.client.impl.ForgivingExceptionHandler:An unexpected connection driver error occured (Exception message: Connection reset)

这种情况只发生在特定作业的一条消息中,并且连接重置时间与该特定消息的重新补丁匹配。

我想知道,作为rabbitmqautoRecovery的一部分,这是否是一个有效的功能,并且是不可避免的?

正确;任何未确认的消息都将重新排队,并在连接重置后重新发送。

最新更新