несколько экземпляров того же микросервиса и общей базы данных postgress - PullRequest
0 голосов

Мои действия перед этим вопросом: 1) Я прочитал микросервисы io 2) Я прочитал о шаблоне совместно используемой базы данных, шаблоне базы данных по сервисам, по схеме, по таблице и т. Д. c ...

Проблема. У меня есть сервис, который выполняет некоторую работу по разделению задач и объединению подзадач. Задача -> несколько подзадач -> объединение. Я использую Kafka для управления потоком задач / подзадач.

Он сохраняет состояние подзадач в БД. Когда все подзадачи готовы, он берет все значения подзадач из redis, объединяет их в результат и отправляет в другую службу.

Если я запускаю еще один экземпляр этой службы, то все два экземпляра службы будут наблюдать один дБ. И они могут неправильно понять состояние подзадач, если попытаются справиться с ситуацией, когда: A1 получает последнюю подзадачу A2 получает одну подзадачу перед последней подзадачей Они оба пытаются проверить количество готовых подзадач Они оба видят все подзадачи готовыми или еще одна подзадача не готова.

Я знаю, что могу решить проблему, используя уровень изоляции REAPITABLE_READ.

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

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