使用Spring-AMQP使用RabbitMQ时获得库存.
只需要一种方法来使用Spring-AMQP配置AutomaticRecoveryEnabled和NetworkRecoveryInterval.如果使用本机RabbitMQ库进行开发,可以直接设置这些标记.但我没有找到使用弹簧做同样的解决方法
使用RabbitMQ Native库(不需要任何帮助)
factory.setAutomaticRecoveryEnabled(true); factory.setNetworkRecoveryInterval(10000);
使用Spring-AMPQ(需要帮助)
像上面一样,我在尝试使用Spring-AMPQ时没有找到任何这样的方法.这就是我现在正在做的事情.
@Bean(name="listener") public SimpleMessageListenerContainer listenerContainer() { SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); container.setConnectionFactory(connectionFactory()); container.setQueueNames(env.getProperty("mb.queue")); container.setMessageListener(new MessageListenerAdapter(messageListener)); return container; }
在这方面的任何帮助都非常值得赞赏.提前致谢.
只是为了澄清; 春天AMQP是不兼容使用automaticRecoveryEnabled
.
它有自己的恢复机制,并且不了解客户端正在执行的底层恢复.这留下了悬空连接和通道.
我正在进行临时解决方案,使其兼容(但将有效地禁用Spring AMQP使用的任何连接/通道的客户端恢复,同时让客户端恢复适用于同一连接工厂的其他用户.
较长期的修复需要重新调整侦听器容器才能使用客户端恢复代码.