Встречается на 1% собеседований по Python
Как обеспечить отказоустойчивость в 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
интервью вопросы и ответы