Восстановление соединения в RabbitMQ для кластерной среды
Я пытаюсь восстановить соединение в среде RMQ for Clustered, но, к сожалению, я не могу восстановить его в коде, и его также не перехватывает в моем исключении.
Например. Первоначально узел 1 был подключен, и наши сообщения были успешно переданы, и для проверки отработки отказа мы подняли узел 2 и остановили узел 1.. соединения теряются, что ожидается, но повторная попытка не происходит, когда узел 2 работает.
Когда я перезапускаю свой сервис, я могу получить исключение как:
"Rabbit MQ Message Exception : Error = 'connection is already closed due to
connection error; cause: java.net.SocketException: Connection reset'"
Кто-нибудь может подсказать, пожалуйста, как его восстановить в таком случае?
Использовали ниже конфигурации в моем коде. (Клиент AMQP):
factory.setAutomaticRecoveryEnabled(true);
factory.setNetworkRecoveryInterval(5000);
factory.setTopologyRecoveryEnabled(true);
factory.setRequestedHeartbeat(60);
При использовании соединения Lyra восстановление произойдет с помощью следующих настроек:
.withRetryPolicy(new RetryPolicy()
.withMaxAttempts(30)
.withInterval(Duration.seconds(1))
.withMaxDuration(Duration.minutes(5)));