如果 RabbitMQ 服务器在消费者消费消息之间重新启动,则未确认消息

Unacked message if RabbitMQ server restarts in between the consumer consumes message

我正在使用 Spring AMQP,这是我的连接工厂代码:

SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setAcknowledgeMode(AcknowledgeMode.AUTO);<br/>
factory.setDefaultRequeueRejected(false);

在使用消息期间,如果 RabbitMQ 服务器重新启动或连接丢失,我将得到以下异常:

org.springframework.amqp.rabbit.connection.AutoRecoverConnectionNotCurrentlyOpenException: Auto recovery connection is not currently open

如果服务器出现,我的应用程序将再次连接 但是有了新的连接,就会有一条未确认的消息。 如何处理?我希望消息重新排队并且我的旧连接应该被终止。

考虑使用最新的 Spring AMQP 1.7.2 关闭:

connectionFactory.setAutomaticRecoveryEnabled(false);

在目标上 com.rabbitmq.client.ConnectionFactory 支持它自己 recovery mechanism