Проблемы RabbitMQ
DataHUB не запускается: ошибка подключения к RabbitMQ
Симптом: в логах DataHUB Connection refused или timeout при старте.
Проверить:
- RabbitMQ запущен:
docker psилиsystemctl status rabbitmq-server. - Параметры подключения в конфигурации DataHUB: хост, порт (
5672), vhost, логин, пароль. - Пользователь RabbitMQ имеет права на нужный vhost: RabbitMQ Management → Admin → Users.
- Если 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