Гарантированная трансляция сообщений в распределенной системе с использованием Node.js

У меня есть распределенное приложение, написанное на Node.js, и я хочу транслировать сообщения на все узлы. Что мне нужно это:

  • Гарантированная доставка (хотя бы один раз)
  • Горизонтальная масштабируемость
  • Полностью децентрализованная архитектура

До сих пор я рассмотрел различные модули для Node.js, такие как Scuttlebutt, node-gossip и все его варианты. Но все они терпят неудачу в отношении гарантированной доставки.

Я также взглянул на Serf и Consul: хотя первый отказал с гарантированной доставкой, второй работает, только если достижимо по крайней мере (n/2)+1 узлов, что слишком мало для моего приложения.

Я также рассмотрел различные очереди сообщений, системы распространения сообщений и протоколы, такие как RabbitMQ, nsq и MQTT. Все они терпят неудачу для одной или нескольких из вышеупомянутых вещей.

Любая идея, как я мог бы решить это (без необходимости писать свой собственный)?

PS: я знаю, что это в основном вопрос к совету для модуля или инструмента, но я не знаю, где еще спросить, и я думаю, что намерение является совершенно обоснованным для любого разработчика, работающего над распределенными приложениями.

0 ответов

Другие вопросы по тегам