@Megadeth77

Какая архитектура нужна для построения простой именованной очереди сообщений для межмашинного взаимодействия?

Переформулирую свой вопрос Как организовать обмен сообщениями между процессами по принципу mailbox?

Мне нужно организовать взаимодействие между сервером и несколькими воркерами. Для этого я хочу иметь именованную очередь сообщений, которая будет жить независимо от процессов из нее потребляющих. Т.е. сначала может проснуться воркер, плюнуть что то в очередь сервера. Потом проснется сервер, прочитает что то из своей очереди и плюнет что то в воркера. Тот может быть мертвым в это время, встал - ответил. И т.д.

Производительность самой очереди никакого значения не имеет. Нужно организовать максимально просто с минимумом зависимостей.

Всё это делается на счет раз через SQL базу - пишем в таблицу сообщение, от кого, кому, в консьюмере поллим базу доставая нужное сообщение. Но вроде как это совсем некрасиво и грузит базу пустыми запросами. Хочется чтобы сообщения в консьюмера пушились.

Какие варианты.

RabbitMQ - вроде не умеет очереди, к которым не подсоединены консьюмеры.
Redis - не гарантирует доставку сообщений (?)
Kafka - вроде умеет, но тяжелый и медленный на старте и вообще оверкил явный, у меня 1 сообщение в пол часа, зачем для такого кафка?
ZeroMQ - нет выделенного брокера и несколько низкоуровнево

В результате я конечно сделаю через базу но буду страдать в поисках более элегантного решения. Прошу помощи зала!

Большая просьба не просто посоветовать что юзать из брокеров а хотя бы в двух словах описать архитектуру объектов внутри него (queue exchange topic consumer итп)
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
RabbitMQ умеет все прекрасно, кто-то не умеет читать документацию
Kafka - самый быстрый из решений, но он не Браке - это History (commit) Log и Streaming. Но администрировать его, конечно, боль.
ZeroMQ - есть брокер как раз, но у него все хранится In Memory

У RabbitMQ прекрасные мануалы с типовыми архитектурами
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы