Микросервисный адаптер. Один для многих или многих / стран к одному / стране. Архитектурное решение / решение о развертывании - PullRequest
0 голосов
/ 24 января 2019

Скажем, у меня есть System1, которая подключается к системе 2 через адаптер-микросервис между ними.

System1 -> rest-calls --> Adapter (converts request-response + some extra logic, like validation) -> System2

Система1 больше похожа на монолит, существует для многих стран (но может измениться).

Вопрос: с точки зрения архитектуры и развертывания MicroService, должен ли адаптер быть по одному на страну. Скажите Adapter-Uk, Adappter-AU и т. Д. Или это должен быть только адаптер, который может одновременно работать со многими странами?

Я имею в виду:

Чтобы иметь отдельную систему / сервис-адаптер :

Преимущество : имеет одну или несколько кодовых баз, адаптивная логика кода между странами в 90% одинакова . Легко вводить новые изменения.

Недостаток : как только мы развернем систему и обнаружим ошибку, это может повлиять на многие страны одновременно. Не безопасно.

Для отдельной системы :

Недостаток : как только в одну систему было внесено какое-то общее изменение, его следует «вставить» для всех других стран / служб. Повторяющийся, не умный .. работа, с точки зрения разработчика.

Преимущество : Безопаснее изменить / развернуть.

В: Каков предпочтительный путь с точки зрения микросервисной архитектуры?

1 Ответ

0 голосов
/ 29 января 2019

Я бы предложил следующее:

  • Адаптер охватывает все страны, чтобы поддерживать единую кодовую базу и улучшить возможность повторного использования кода
  • модульные и / или интеграционные тесты, чтобы справиться с ошибками
  • порождает несколько идентичных экземпляров адаптера с балансировщиком нагрузки впереди
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...