Как избежать дублирования обработки сообщений, если два экземпляра одного и того же приложения подписываются на тему? - PullRequest
0 голосов
/ 11 октября 2018

У меня запущено два экземпляра одного и того же приложения, и они оба подписаны на одну и ту же тему.Сообщения будут опубликованы на обоих серверах, и оба сервера будут обрабатывать одно и то же сообщение.Как избежать дублирования обработки сообщений, если два экземпляра одного и того же приложения подписываются на (одну и ту же) тему с использованием подхода без сохранения состояния?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Тема имеет совершенно противоположную цель от того, чего вы пытаетесь достичь.Очередь стоит за ним.

Если вы все еще хотите использовать тему, у вас должен быть только один подписчик / прослушиватель поверх ваших экземпляров приложения.

Тогда вам придется самостоятельно устанавливать любой баланс нагрузкиалгоритм между экземплярами вашего приложения (например, циклический перебор или что-то более сложное).

0 голосов
/ 11 октября 2018

Если серверы являются просто репликацией друг друга, у них не должно быть отдельных источников данных, которые они будут прослушивать.Смысл создания архитектуры с несколькими экземплярами состоит в том, чтобы распараллелить и ускорить обработку данных.У вас должен быть один источник данных, чтобы после того, как сообщение было взято в руки одним сервером, оно перестало быть доступным для другого, что может сосредоточиться на следующих сообщениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...