Разверните динамический Service Gateway для Lagom в рабочей среде.

Я разработал набор микросервисов Lagom. Среда разработки предоставляет шлюз служб и локатор служб по умолчанию.

В производственной среде я хотел бы, чтобы мои услуги:

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

Что следует использовать в качестве реестра служб/локатора служб/шлюза служб?

Простой NGINX был бы разумным сервисным шлюзом, но он предполагает очень статичную конфигурацию, основанную на правилах перенаправления (без фактической регистрации).

Я не могу найти ни одного примера кода по этому вопросу и документации очень плохой (он хорошо описывает инструменты разработки, но не помогает, когда дело доходит до реального производства).


person Grégory Weinbach    schedule 19.05.2020    source источник


Ответы (1)


Документация по этой области намеренно расплывчата, потому что экосистема очень обширна и быстро меняется.

Вы можете, например, использовать Consul или ZooKeeper для отслеживания экземпляров, запущенных для каждой службы, и где они работают (where означает IP:PORT). Тогда вам нужно будет использовать экземпляр Service Locator на основе Consul или ZooKeeper. В настоящее время предпочтительной целевой средой развертывания является Kubernetes (в любой ее разновидности), поэтому расположение службы основано на поиске DNS-SRV на DNS-сервере, предоставляемом k8s. Шаг регистрации происходит автоматически в настройке k8s для каждого модуля, поэтому вам не нужно об этом заботиться.

Затем обратный прокси-сервер на границе, способный направлять каждый запрос соответствующему процессу, представляет собой старый добрый прокси-сервер HTTP, который может проверять местоположение вашей службы (или кэшировать информацию о местоположении службы). В настоящее время рекомендуется настроить пограничный прокси-сервер Ingress/Route (для k8s или OpenShift) для каждой из ваших служб lagom.

См. руководство по развертыванию приложения Lagom в Openshift. подробное объяснение.

person ignasi35    schedule 21.05.2020