Короткий ответ
Очередь сообщений — промежуточный сервис, который принимает сообщения от отправителей и хранит их до обработки получателем, развязывая отправителя и обработчика во времени и скорости.
Как это работает подробнее
Producer публикует сообщение в очередь/топик; consumer читает сообщения и подтверждает обработку (ack).
Пример кода
example.py
# producer
channel.basic_publish(exchange="", routing_key="emails", body=json.dumps(payload))
# consumer
def callback(ch, method, properties, body):
process_email(json.loads(body))
ch.basic_ack(delivery_tag=method.delivery_tag)Что использовать на практике
- Практика. Используют для фоновых задач, интеграции сервисов, сглаживания пиков нагрузки (буферизация); примеры — RabbitMQ, Kafka, SQS.
Подводные камни
- Риск. Считать очередь гарантией мгновенной обработки; не учитывать, что сообщение может быть доставлено повторно (at-least-once).