#microservices
#микросервисы
Вопрос:
чтобы дать вам немного контекста, я разрабатываю игру, онлайн футбольный менеджер, и у меня есть следующие микросервисы:
- Клубы
- Сезон
Clubs
Микросервис заботится об управлении клубом и Season
отвечает за управление сезоном.
Одна из обязанностей Season
службы — возвращать турнирную таблицу лиги с названиями клубов и их позициями. В Season
сервисе я сохраняю только club_id
, но для выполнения запроса на возврат турнирной таблицы мне также понадобится название клуба, которое находится в Clubs
сервисе.
Теперь я мог бы реализовать конечную точку REST в Clubs
службе, чтобы вернуть название клуба, но эти службы больше не будут слабо связаны.
Как я видел из своих показаний, у меня есть 2 варианта, и они:
- Имейте
clubs
кеш вSeason
службе, где он устанавливает связь междуclub_id
иclub_name
(может быть таблицей базы данных). В этом случае данные будут дублироваться (что нормально для большинства случаев), но мне нужно синхронизировать события домена, отправляемыеClubs
Службой. - Другим вариантом может быть создание другого микросервиса, который будет использоваться в качестве шаблона композиции API. Таким образом, этот API будет получать данные из обеих служб, обогащать ответ и отправлять обратно вызывающему абоненту.
Теперь я сомневаюсь, какой подход следует избрать. У какого из них меньше недостатков?
Ответ №1:
Оба описаны в шаблоне Saga. Есть плюсы и минусы обоих. Вы должны выбирать на основе ваших NFRS.