Встречается на собеседованиях • сегодня
Как обеспечить отказоустойчивость в RabbitMQ
Для обеспечения отказоустойчивости в RabbitMQ можно использовать несколько подходов:
- Кластеризация - объединение нескольких нод RabbitMQ в кластер для репликации данных. Если одна нода падает, другие продолжают работать.
python
# Пример объявления очереди с durable=True
channel.queue_declare(queue='task_queue', durable=True)- Зеркалирование очередей - настройка политик для репликации очередей между нодами:
bash
rabbitmqctl set_policy ha-all "^ha\." '{"ha-mode":"all"}'- Подтверждение обработки (acknowledgments) - гарантирует, что сообщение не потеряется, если worker упадет:
python
channel.basic_consume(queue='task_queue',
on_message_callback=callback,
auto_ack=False) # важно отключить auto_ack- Сохраняемые сообщения - маркировка сообщений как persistent:
python
properties=pika.BasicProperties(
delivery_mode=2, # делает сообщение persistent
)- Резервный брокер - настройка HAProxy для переключения на standby-сервер при падении основного.
Дополнительно стоит мониторить состояние очередей и настраивать алерты при достижении лимитов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы