微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在使用 SpringBoot 应用程序的 RabbitMQ 连接错误后建立连接

如何解决如何在使用 SpringBoot 应用程序的 RabbitMQ 连接错误后建立连接

将我的 SpringBoot 应用程序重新部署到 TomcatServer 9 后,我遇到了一些奇怪的异常:

MyApplication: 2021-05-17 09:54:39,306 错误 [AMQP 连接 主机:端口]

o.s.a.r.c.CachingConnectionFactory:1576 - 通道关闭:连接错误 从那以后,我无法从 RabbitMQ 收到任何消息。

如果我重新启动我的应用程序,那么也不例外。

出现这些错误后,我是否需要更改 SpringBoot 应用程序中的某些内容自动重新连接?

或者我错过了什么?

这是我的 SimpleRabbitListenerContainerFactory 设置:

@Bean
public SimpleRabbitListenerContainerFactory poxStatusFeedbackInterceptContainerFactory(final SimpleRabbitListenerContainerFactoryConfigurer configurer,final ConnectionFactory connectionFactory) {
    SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory() {
        @Override
        protected void initializeContainer(SimpleMessageListenerContainer instance,RabbitListenerEndpoint endpoint) {
            instance.setAfterReceivePostProcessors(new MyPostProcessor()); // this does some prevalidation of messages
            super.initializeContainer(instance,endpoint);
        }
    };
    configurer.configure(factory,connectionFactory);
    return factory;
}

这是 application.yml 设置:

spring:
  rabbitmq:
    host: .......
    port: ....
    virtual-host: myhost
    username: sa
    password: sa
    listener:
      simple:
        retry:
          enabled: true
          initial-interval: 3s
          max-interval: 10s
          multiplier: 2
          max-attempts: 3

解决方法

这将解决问题:

((CachingConnectionFactory) connectionFactory).setRequestedHeartBeat(60);

在这里找到: https://www.rabbitmq.com/heartbeats.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。