Являются ли независимые (микро) службы парадоксом? - PullRequest
0 голосов
/ 08 июня 2019

Идеи о микросервисах:

  • Микросервисы должны быть функционально независимыми
  • Микросервисы должны специализироваться на выполнении некоторой полезной работы в домене, которым они владеют
  • Микросервисы предназначены для связи друг с другом

Я считаю, что эти идеи противоречивы.

Позвольте мне привести гипотетический бизнес-сценарий.

Мне нужна служба, которая выполняет рабочий процесс с шагом, требующим автоматического перевода.

В моем бизнесе есть служба автоматического перевода. Существует RESTful API, где я могу POST исходный язык, целевой язык и текст, и он возвращает перевод. Это прекрасный пример полезного автономного сервиса. Он многоразовый и совершенно не знает своих потребителей.

Должна ли услуга рабочего процесса, в которой нуждается мой бизнес, использовать эту услугу? Если это так, то мой сервис имеет «зависимость» от другого сервиса.

Если вы возьмете это рассуждение до предела, каждая служба в мире будет иметь все функции в мире.

Теперь я знаю, что вы думаете, что мы можем сломать эту зависимость, перейдя от ответа на запрос (REST) ​​к обмену сообщениями. Мой сервис публикует сообщение с запросом на перевод. Ответное сообщение о переводе публикуется, когда перевод завершен, и моя служба использует это сообщение. Хорошо, но мой сервис должен заморозить рабочий процесс и продолжить работу при получении сообщения. Это все еще «ожидание», даже если ожидание является истинным асинхронным ожиданием (скажем, состояние рабочего процесса сохранялось, и сообщение о переводе приходит днем ​​позже). Это просто отложенный запрос-ответ.

1 Ответ

1 голос
/ 09 июня 2019

Лично для меня " независимый " - это качество, которое применяется к нескольким измерениям .Он может не зависеть от перспективы времени выполнения, но может быть независим от перспектив разработка , развертывание , операции и масштабируемость .

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

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