Из Production сообщается о нескольких случаях, когда консоль RabbitMQ показывала, что для очереди нет прослушивателя. Журналы из приложения, а также с сервера RabbitMQ не имеют соответствующей ошибки, указывающей на причину.
В качестве профилактики я изучаю, что предоставляет SimpleMessageListenerContainer, чтобы гарантировать, что потребитель в случае успешного создания/запуска/инициализации никогда не выйдет из строя.
Один из вариантов заключается в том, что я создаю демон мониторинга, который продолжает проверять количество активных потребителей, используя SimpleMessageListenerContainer.html#getActiveConsumerCount(), и если их количество меньше ожидаемого, то демон пытается восстановить их с помощью API doStart() или doInitialize().
Но прежде чем перейти к рассмотрению вышеприведенного варианта, я чувствую, что SimpleMessageListenerContainer уже обеспечивает это внутри. Это действительно так?