2015-04-28 4 views
2

У меня настроенная интеграция Spring с RabbitMQ в качестве брокера сообщений. У меня есть сценарий, где приложение может быть развернуто в производстве с RabbitMQ down.When это происходит приложение непрерывно пытается восстановитьSpring Integration RabbitMQ ConnectionFactory изящно останавливает повторную попытку, если RabbitMQ не работает

org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer run 
WARNING: Consumer raised exception, processing can restart if the connection factory supports it. Exception summary: org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused 

журнала Моего сервера наполняются этими журналами. Как настроить фабрику соединений, например, попытаться повторно подключиться только 5 раз в интервале 10,30 или 60 неправильно? Я хочу, чтобы иметь возможность контролировать повтор и печатать некоторые сообщения.

ответ

3

Существует только простой recoveryInterval, который вы можете увеличить, но он исправлен; this answer имеет некоторые предложения о том, как реализовать что-то более сложное.

+0

Spring AMQP версия 1.5 (в настоящее время на этапе 1.5.0.M1) [теперь поддерживает инъекцию реализации BackOff (включая экспоненциальную)] (http://docs.spring.io/spring-amqp/docs/1.5.0. СТРОЙ-СНАПШОТ/ссылка/HTML/_introduction.html # _simplemessagelistenercontainer_backoff_support). –

1

Если вам нужна более сложная стратегия восстановления и повторного подключения для вашего клиента RabbitMQ, вы можете проверить наш Lyra. Пример:

Config config = new Config() 
    .withRecoveryPolicy(new RecoveryPolicy() 
     .withBackoff(Duration.seconds(1), Duration.seconds(30)) 
     .withMaxAttempts(20) 
     .withMaxDuration(Duration.minutes(5))); 

Connection connection = Connections.create(new ConnectionOptions(), config); 

Это не связан с пружинным AMQP, вместо того, чтобы использовать стандартный AMQP-клиент API, но она предоставит вам надежную обработку отказов и восстановление ресурсов.

Смежные вопросы