Java 如果RabbitMQ服务器在使用者使用消息之间重新启动,则未确认消息
我正在使用Spring AMQP,这是我的连接工厂代码:Java 如果RabbitMQ服务器在使用者使用消息之间重新启动,则未确认消息,java,rabbitmq,spring-amqp,Java,Rabbitmq,Spring Amqp,我正在使用Spring AMQP,这是我的连接工厂代码: SimpleRableBitListenerContainerFactory=新的SimpleRableBitListenerContainerFactory(); 工厂。设置连接工厂(连接工厂); setAcknowledgeMode(AcknowledgeMode.AUTO) factory.setDefaultRequeueRejected(false); 在使用消息期间,如果RabbitMQ服务器重新启动或连接丢失,我将得到以下
SimpleRableBitListenerContainerFactory=新的SimpleRableBitListenerContainerFactory();
工厂。设置连接工厂(连接工厂);
setAcknowledgeMode(AcknowledgeMode.AUTO)
factory.setDefaultRequeueRejected(false);
在使用消息期间,如果RabbitMQ服务器重新启动或连接丢失,我将得到以下异常:
org.springframework.amqp.rabbit.connection.AutoRecoverConnectionNotCurrentlyOpenException:自动恢复连接当前未打开
如果服务器启动,我的应用程序将再次连接
但是有了一个新的连接,就会有一个未经确认的消息。
如何处理?我希望重新查询该消息,并终止我的旧连接。考虑使用最新的Spring AMQP
1.7.2
,它关闭以下功能:
connectionFactory.setAutomaticRecoveryEnabled(false);
在目标
com.rabbitmq.client.ConnectionFactory
上以其自身为受益人 但我希望自动恢复,但不希望消息处于未确认状态。消息应该在这样的场景中被确认或被确认,这将发生,但通过Spring AMQP实现。spring amqp1.6中提供了这个功能,框架也关注这些消息。如果是,如何配置它。???自版本1.7
以来,存在自动恢复连接NotCurrentlyOpenException
。我不明白你为什么要谈论1.6
。。。是的:自版本4.0以来,RabbitMQ客户端中存在自动恢复。Spring AMQP1.6
与此不兼容。但与此同时,Spring AMQP自动恢复功能仍然存在,并且工作正常