Что это значит

Сервисы RX держат постоянные соединения с RabbitMQ. При обрыве клиентская библиотека пытается восстановить соединение сама. RabbitMQ connection '...' shutdowned пишется в момент обрыва, recovery failed когда восстановить не удалось. Внутри часто Connection failed или FailedAutoRecovery.

Самое неприятное в этой ситуации: после неудачного восстановления сервис может остаться без соединения, хотя брокер уже снова работает. Он не получает задания и не отправляет сообщения, но продолжает считаться запущенным. Справка вендора на этот случай рекомендует: если брокер был недоступен долго, после его восстановления проверить и перезапустить сервисы RX.

Как проверить

  1. Работает ли RabbitMQ сейчас: rabbitmqctl status, rabbitmq-diagnostics check_running.
  2. Есть ли у сервиса соединение с брокером: в списке соединений брокера (rabbitmqctl list_connections client_properties) или по новым записям о подключении в журнале сервиса после восстановления брокера.
  3. Растут ли очереди без потребителей: rabbitmqctl list_queues name messages consumers.

Что сделать

  1. Восстановить RabbitMQ.
  2. Перезапустить сервисы RX, в журналах которых после восстановления брокера нет записей о новом подключении.
  3. Поставить тревогу на очереди RX без потребителей: так видно сервис, который потерял соединение и молчит.