Как правильно спроектировать систему, чтобы несколько модулей не обрабатывали одно и то же событие домена? - PullRequest
0 голосов
/ 27 марта 2020

Каковы правильные конструкции системы, чтобы несколько контейнеров не обрабатывали одно и то же событие домена? Если у меня есть сервис, который порождает несколько экземпляров на Kubernetes k8s. И все они подписываются на одно доменное событие. Каковы стратегии, предотвращающие многократное выполнение одного и того же обработчика событий? На каждом модуле?

Давайте рассмотрим этот пример:

  1. у нас есть две службы A и B
  2. один экземпляр A работает и два из B
  3. A отправляет событие, которое B подписывается на
  4. оба экземпляра B запускают для него обработчик событий

Теперь мы не хотим запускать один и тот же обработчик для каждого экземпляра. Но так как это паб / суб все подписчики получают уведомление о событии.

Также в случае, если будет третий сервис C, который подписывается на тот же даже, мы хотим, чтобы он обрабатывал это также.

Так что проблема в том, что мы запускаем несколько экземпляров одного и того же обработчика. Только первый должен справиться с этим. Какая будет правильная системная архитектура для борьбы с ней?

...