Ni55aN
@Ni55aN

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

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

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

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

Неудобства в том, что нужно вручную прописывать порты и в каждом сервисе указывать хост и порт, по которому нужно обращаться к другому сервису. Есть ли какие-то способы, близкие к Auto-discovery подобно CoteJS, чтобы такие вещи решались автоматически, а при обращении к сервису достаточно было указать его идентификатор?
  • Вопрос задан
  • 437 просмотров
Решения вопроса 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 очень удобно на себя берет решение вопроса
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
24 апр. 2024, в 19:40
5000 руб./за проект
24 апр. 2024, в 19:18
50000 руб./за проект
24 апр. 2024, в 19:05
15000 руб./за проект