Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果RabbitMQ服务器在使用者使用消息之间重新启动,则未确认消息_Java_Rabbitmq_Spring Amqp - Fatal编程技术网

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

Java 如果RabbitMQ服务器在使用者使用消息之间重新启动,则未确认消息,java,rabbitmq,spring-amqp,Java,Rabbitmq,Spring Amqp,我正在使用Spring AMQP,这是我的连接工厂代码: SimpleRableBitListenerContainerFactory=新的SimpleRableBitListenerContainerFactory(); 工厂。设置连接工厂(连接工厂); setAcknowledgeMode(AcknowledgeMode.AUTO) factory.setDefaultRequeueRejected(false); 在使用消息期间,如果RabbitMQ服务器重新启动或连接丢失,我将得到以下

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

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 AMQP
1.6
与此不兼容。但与此同时,Spring AMQP自动恢复功能仍然存在,并且工作正常