Микросервисы, похоже, очень хорошо подходят для моего программного обеспечения после просмотра и чтения статей статей от Мартина Фаулера, Сэма Ньюмена, Адриана Кокрофта и Sudhir Tones. Однако, если глубже думать о реализации, существует ряд проблем:Что такое хорошая практика по продвижению микросервиса в открытый API?
- У моего программного обеспечения есть пользовательский интерфейс, назовем его веб-компонентом. Этот компонент должен будет координировать/организовывать вызовы на 10-20 различных микросервисов внутри (назовем это «частными микросервисами») и вернуть данные на вызов AJAX. Это хороший дизайн для объединения логики оркестровки в этом компоненте? Или я должен создать еще один микросервис, который выполняет задание, и веб-компонент должен быть очень тонким, чтобы делегировать вызов этому микросервису?
- Мне нужно будет открыть некоторые общедоступные API. Должен ли я иметь отдельный слой для делегирования вызова, как в случае выше?
Я думаю, что это может быть более или менее о шаблоне проектирования для государственных/частных микросервисов.
Что было бы хорошим образцом для решения вышеуказанных проблем?
Обновлено 9 апреля 2015:
API шлюз шаблон фактически адресует свои проблемы. Я также согласен с другими ответами относительно шаблонов EAI или соображений безопасности.
Чтобы больше узнать о моих выводах, я думаю, что архитектура Netflix имеет так называемый «краевой сервис», который является передним уровнем, который обслуживает запросы, поступающие с веб-устройств или устройств, а службы среднего уровня на самом деле ваши микросервисы. Поэтому я считаю, что продвигать услугу среднего уровня, чтобы быть краевым сервисом, это должен быть делегат. Он будет поддерживать средний уровень и быть последовательным.
Посмотрите на https://github.com/cfregly/fluxcapacitor#project-overview, чтобы иметь больше идей.
В самом деле, я только что узнал об этом в последнее время. Я уточню ответ с более подробной информацией. – erolagnab