AMQP и RabbitMQ
Коротко: AMQP — открытый протокол для очередей сообщений, RabbitMQ — самый известный брокер, реализующий его.
Подробнее: Производители отправляют сообщения в обменник (exchange), который по правилам раскладывает их по очередям (queue). Потребители забирают их оттуда и подтверждают получение.
Подробности
- Типы обменников:
direct(точный ключ),fanout(всем),topic(шаблоны вродеlog.*.error),headers. - Подтверждения: Брокер удаляет сообщение только после
ack. Приnackили обрыве оно возвращается в очередь. - Долговечность: Долговечные очереди и персистентные сообщения переживают перезапуск.
- Очередь недоставленных сообщений (dead-letter): Сообщения, которые нельзя обработать, попадают в сборную очередь для анализа.
- Отличие: Kafka хранит журнал, который можно перечитать. RabbitMQ — классический брокер, удаляющий сообщения после доставки. См. очереди сообщений.
- Применение: Фоновые задачи, развязка служб, сглаживание пиков нагрузки.
См. также: MQTT