В порядке ли циклическая зависимость для проектирования микроуслуг? - PullRequest
0 голосов
/ 19 сентября 2019

сервис A: пользовательский сервис рендеринга страницы, получение схемы пользовательского интерфейса из B и информация о компонентах из API выпуска gitlab для рендеринга страницы (SSR).A имеет механизмы кэширования данных схемы.Эта услуга находится на кластере, который позволяет внешнее посещение.

служба B: веб-служба B находится в кластере, который позволяет только внутреннее посещение.Эта служба предоставляет:

  1. инструмент конфигурации схемы и API-интерфейсы CURD, которые инструмент конфигурации использует
  2. схема получения API для A.
  3. B также необходима информация о компонентах, поэтомупользователи инструмента (внутренний персонал) могут выбрать для создания своей собственной страницы, ориентированной на пользователя.

C: компоненты lib, публикация в CDN через gitlab CI / CD.Информация о выпуске (имя компонента и его собственная ссылка CDN) предоставляется через API выпуска gitlab.Gitlab находится на внутреннем сервере.

Мы обсуждаем одну проблему: чтобы сделать B пригодным для использования, когда gitlab не работает, кто-то предложил, чтобы информация о выпуске была резервной копией на A, поэтому, когда gitlab не работает, B может прочитать резервную копиюданные А.

Меня беспокоит то, что это предложение превращает цепочку в петлю.Я чувствую, что односторонний дизайн является более разумным.Если нам нужна резервная копия, мы могли бы использовать БД для резервного копирования информации о выпуске.Но я не могу обеспечить теоретическую поддержку моего заключения.Кроме того, поскольку поддержка нашей компанией кластеров A включена, отсутствует дорожная карта и, возможно, она будет перенесена куда-то в один день, поэтому я не хочу, чтобы B зависело от A.

Может ли кто-нибудь помочь выбрать правильное решение?для проблемы?

...