Как выполнять обработку последовательных событий в распределенных микросервисах - PullRequest
0 голосов
/ 13 июля 2020

Я получаю события от устройств Интернета вещей. Эти события / соединения сбалансированы по нагрузке для нескольких экземпляров службы, обрабатывающей их.

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

Каковы хорошие архитектуры или решения, чтобы гарантировать последовательная обработка в системе распределения на основе общего тега или полосы (например, серийного номера устройства)?

Некоторые предыдущие размышления об этом:

  • Я знаю, как это сделать это локально в одном экземпляре с полосой службы исполнителя https://www.javaspecialists.eu/archive/Issue206.html
  • Я знаю о Sticky Sessions , которые балансируют запросы на основе сеанса. Но мои устройства Интернета вещей используют необработанный TCP и не имеют сеансов. Можно ли адаптировать HAProxy для анализа и извлечения токена из необработанного TCP?

Есть ли более общая распределенная служба или архитектура с чередованием?

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