Веб-сервер Apache и микросервисы с Docker - PullRequest
0 голосов
/ 21 октября 2019

У меня есть несколько микросервисов с весенней загрузкой, работающих на Docker, и веб-сервер Apache (также работающий на Docker) для всех статических вещей. Микросервисы используются веб-браузером. Проблема в том, что я не знаю, как мне ссылаться на микросервисы из html или javascript:

  • микросервис работает на другом порту
  • также может работать на другом хосте
  • браузер жалуется на ссылки

Поиск в Google проблемы указывает на Netflix eureka или Apache Camel, но я не уверен, что это правильные решения.

1 Ответ

2 голосов
/ 22 октября 2019

Давайте сначала подумаем о развертывании. Вы упоминаете, что контейнеры Docker могут работать на разных машинах. Я рекомендую использовать контейнерные оркестраторы, такие как Docker Swarm или Kubernetes для управления кластером и связи между микросервисами (обычно через DNS).

Как правило, вы хотите скрыть все своимикросервисы за одним путем API. Внешний мир не должен знать, что ваше серверное приложение состоит из нескольких микросервисов. Вы можете использовать простой обратный прокси для этого. Мне лично нравится Traefik , потому что вы можете настроить пути маршрутизации в экосистеме Docker с помощью меток.

Вы говорите, что используете API микросервиса с браузером, так это приложение веб-клиента? Если это так, я рекомендую использовать его в качестве контейнера Docker и встраивать его в маршрутизацию, используя относительные пути. Например, пользовательский интерфейс обслуживается /, а микросервисы - /api/{service}/{path}. Тогда приложение пользовательского интерфейса может использовать относительные пути, поскольку они обслуживаются одним и тем же обратным прокси-сервером и такими же URL-адресами (=> нет проблем с CORS). Кроме того, вы можете развернуть на любой IP, маршрутизация остается прежней и не требует настройки

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