LINUX.ORG.RU

Посоветуйте Event Broadcasting System, но не Kafka?

 broadcasting, , , pubsub


0

4

Задача такая:

Есть именованные шины сообщений/событий - на которые разными источниками выкладываются сообщения в режиме «отправил - и забыл». Никакой связи между источниками и получателями нет.

Нужна некая система, которая обеспечивает:

а) У неё есть отказоустойчивые клиенты как для роли получателя, так и для роли отправителя (на стороне отправителя сообщения откладываются в буфер и делаются попытки реконнекта в случае наличия проблем соединения, на стороне получателя - просто постоянные попытки реконнекта после обрыва связи)

б) Система предоставляет получателю возможность запросить «все доступные/сохранённые сообщения из шины с именем N,начиная с id=X». При этом система имеет право отдать только те сообщения из шины, которые она в разумных пределах «окна исторических данных» временно сохранила

в) Система не налагает каких-либо ограничений на размер или содержание сообщения, но при этом даёт возможность получателю считать только размер сообщения или только Y первых байт сообщения.

в - необязательное требование.

Пока знаю одну такую систему, это Apache Kafka. Для простеньких проектов, тем более в рамках ограниченных ресурсов, это сильный оверхед по ресурсам, так и по сложности администрирования.

Есть ли что-нибудь менее универсальное, чем Kafka и, желательно, ориентированное именно на «событийное широковещание»?

Спасибо!

★★★★★

Ответ на: комментарий от anonymous

Segment Centrifuge? https://segment.com/blog/introducing-centrifuge/ MQ - это всегда тупо очередь, сказать «используй MQ» - это примерно то же, что сказать «используй redis» или «используй компьютер». Если всю логику придётся накручивать самому, то профита от любого MQ весьма немного.

DRVTiny ★★★★★
() автор топика
Последнее исправление: DRVTiny (всего исправлений: 1)

При этом система имеет право отдать только те сообщения из шины, которые она в разумных пределах «окна исторических данных» временно сохранила

Чего?

ya-betmen ★★★★★
()
Ответ на: комментарий от stave

Например, у Кафки нет нормального клиента для perl. Тот, что есть - не асинхронный и переделать его в асинхронный не особо просто, даже если переписать под Coro.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Мощная штука, для моей задачи полный аналог Кафки по сути, только без Java и всего сопутствующего геморроя.

Пока бета-версия,но наверное совсем скоро и релиз ведь запилят.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

у тебя просто все доступные/сохранённые плохо согласуется с retention period а kafkaвременно сохранила вот и уточняю.

ya-betmen ★★★★★
()
Ответ на: комментарий от ya-betmen

Кафка что-то хранит за границами retention period? Вот это для меня новость, расскажите поподробнее, пожалуйста? А если этот период - 1 минута, тогда как?

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

Сэр, я не силён в Кафке конечно, но насколько я понимаю, данные оною Кафкою сохраняются в течение некоего периода времени, а потом удаляются. О том, что Кафка куда-то их дальше передаёт или нет - речь не идёт. И да, теоретически retention может быть бесконечным. Но в общем случае это просто «окно», в рамках которого сохраняются данные.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Я же сказал что кафка и окно тут ни при чем. Окно у меня не срослось со «всеми» данными. А вот понятие «временный» с записью в файл в голове плохо согласуется, но согласен тут можно и своп как пример привести.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.