Перейти к содержанию

Проблемы RabbitMQ

DataHUB не запускается: ошибка подключения к RabbitMQ

Симптом: в логах DataHUB Connection refused или timeout при старте.

Проверить:

  1. RabbitMQ запущен: docker ps или systemctl status rabbitmq-server.
  2. Параметры подключения в конфигурации DataHUB: хост, порт (5672), vhost, логин, пароль.
  3. Пользователь RabbitMQ имеет права на нужный vhost: RabbitMQ Management → Admin → Users.
  4. Если RabbitMQ на другом хосте — сетевая доступность порта 5672.

Сообщения накапливаются в очереди, не доставляются

Симптом: в RabbitMQ Management растёт Ready в очереди получателя, Consumers = 0.

Причина: получатель не подключён к шине (регламентное задание не работает или адаптер недоступен).

Действие: запустить обмен на стороне получателя; после подключения сообщения начнут доставляться автоматически.

Dead-letter очередь содержит сообщения

Симптом: в Management видны сообщения в очереди с суффиксом -dlq или dead-letter.

Причина: сообщение было отклонено обработчиком (nack) после исчерпания попыток на уровне брокера, или TTL сообщения истёк.

Действие: 1. Просмотреть содержимое DLQ через Management → Queues → имя → Get messages. 2. Определить причину отклонения. 3. При необходимости переместить сообщения обратно в исходную очередь через shovel или вручную.

Очередь не существует после перезапуска

Симптом: после перезапуска RabbitMQ очереди исчезли.

Причина: очереди были созданы как non-durable (не персистентные).

Действие: DataHUB создаёт очереди при старте — перезапустить DataHUB. Убедиться, что конфигурация создаёт очереди с флагом durable: true.

Высокая нагрузка на брокер

Симптом: RabbitMQ Management показывает высокий Publish rate или большое число connections.

Анализ: - Проверить количество и размер сообщений в очередях. - Убедиться, что ACK отправляются корректно — неподтверждённые сообщения (Unacked) блокируют слоты. - Inline-вложения (Base64 внутри тела) значительно увеличивают размер сообщений — перейти на хранение по ссылке.

Проверка состояния

# Статус узла
rabbitmqctl status

# Список очередей
rabbitmqctl list_queues name messages consumers

# Список соединений
rabbitmqctl list_connections

Или через Management UI: http://<host>:15672