gpt4 book ai didi

java - 是否有任何选项可以使用 Spring-AMQP 在 RabbitMQ 中设置 AutomaticRecoveryEnabled?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:26:05 26 4
gpt4 key购买 nike

在使用 Spring-AMQP 处理 RabbitMQ 时获取库存。

只需要找到一种使用 Spring-AMQP 配置 AutomaticRecoveryEnabled 和 NetworkRecoveryInterval 的方法。如果您使用 native RabbitMQ 库进行开发,则可以直接选择设置这些标志。但是我没有找到使用 spring 做同样事情的解决方法

Using RabbitMQ Native library(don't need any help)

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;
}

非常感谢这方面的任何帮助。提前致谢。

最佳答案

只是为了澄清; Spring AMQP 与 automaticRecoveryEnabled不兼容

它有自己的恢复机制,并且不知道客户端正在执行的底层恢复。这留下了悬空连接和 channel 。

我正在研究 temporary work-around这将使它兼容(但会有效地禁用 Spring AMQP 使用的任何连接/ channel 的客户端恢复,同时为同一连接工厂的其他用户保留客户端恢复。

长期修复将需要对监听器容器进行重大重写,以改为使用客户端恢复代码。

关于java - 是否有任何选项可以使用 Spring-AMQP 在 RabbitMQ 中设置 AutomaticRecoveryEnabled?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25175448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com