Ni55aN
@Ni55aN

Как сделать service discovery для клиентских приложений?

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

Взаимодействуют клиентские части через postMessage и находятся в iframe'ах (таким образом не нужно городить что-то вроде Web Components и при разработке hot reload работает из коробки).

Запускается это через docker compose, и в случае одной машины все находится просто на разных портах. Для внедрения вьюшек микросервисов на клиентской стороне необходимо знать, где находится определенный сервис.

Неудобства в том, что нужно вручную прописывать порты и в каждом сервисе указывать хост и порт, по которому нужно обращаться к другому сервису. Есть ли какие-то способы, близкие к Auto-discovery подобно CoteJS, чтобы такие вещи решались автоматически, а при обращении к сервису достаточно было указать его идентификатор?
  • Вопрос задан
  • 440 просмотров
Решения вопроса 1
Ni55aN
@Ni55aN Автор вопроса
На данный момент нашел для себя более удобный и просто вариант:

Docker Swarm + Traefik.

В существующих docker-compose.yml всего-навсего пришлось изменить build на image, прописать команды для предварительного сбора образов и добавить метки для traefik.

Через Swarm могу развернуть масштабиремые контейнеры на нескольких машинах, на которые (в нужный микросервис) будет перенаправлять Traefik согласно поддомену (метка traefik.frontend.rule=Host:...)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Hashicorp Consul может вам подойдёт? Но я для этого используют облака, в частности AWS - там их Route53 очень удобно на себя берет решение вопроса
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы