Spring AMQP v1.4.2 - Rabbit reconnection issue on network failure

前端 未结 3 1076
自闭症患者
自闭症患者 2021-01-08 01:10

I am testing the following scenario in Spring AMQP v1.4.2 and it fails to reconnect after a network disruption:

  1. Start the spring application which consumes mess
3条回答
  •  清歌不尽
    2021-01-08 01:52

    Set setRequestedHeartBeat to the ConnectionFactory and setMissingQueuesFatal(false) to SimpleMessageListenerContainer in order to retry to connect indefinitely. By default SimpleMessageListenerContainer setMissingQueuesFatal is set to true and only 3 retries will be done.

      @Bean
      public ConnectionFactory connectionFactory() {
        final CachingConnectionFactory connectionFactory = new CachingConnectionFactory(getHost(), getPort());
        connectionFactory.setUsername(getUsername());
        connectionFactory.setPassword(getPassword());
        connectionFactory.setVirtualHost(getVirtualHost());
        connectionFactory.setRequestedHeartBeat(30);
        return connectionFactory;
      }
    
      @Bean
      public SimpleMessageListenerContainer listenerContainerCopernicusErrorQueue() {
        final SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
        container.setConnectionFactory(connectionFactory());
        container.setQueueNames(myQueue().getName());
        container.setMessageListener(messageListenerAdapterQueue());
        container.setDefaultRequeueRejected(false);
        container.setMissingQueuesFatal(false);
        return container;
      }
    

提交回复
热议问题