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