Как назвать маршруты проверки работоспособности между несколькими службами за ALB?
Я перенес свой API и базу данных на AWS.Перед перемещением я разделил свой монолитный REST API на четыре службы:
- публичный API (к которому подключаются приложения и веб-сайты)
- административный API (для веб-сайта администратора)
- API обмена сообщениями (сервер веб-сокетов для связи с приложениями в режиме реального времени)
- работников (процессоры задач на основе очередей)
Я сейчас пытаюсь выяснить хорошую организацию маршрутов,Сначала были созданы два субдомена, api.mydomain.com и www.mydomain.com.
Я направил субдомен api в мой ALB, который маршрутизировал трафик только на основе пути, например:
- "/ sockets" -> messaging-api
- "/ admin" -> admin-api
- "/" -> public-api
Сейчас я пытаюсь реализовать проверки здоровья маршрутов.Я хотел бы назвать их "/ здоровье".Но проверки здоровья должны быть направлены на каждую целевую группу.Поскольку ALB использует только маршруты, основанные на пути, я не могу иметь / health более чем на одном сервере.
Возможные решения:
1.Разделите службы по поддоменам
Я мог бы создать поддомен для каждой службы, например: - api.mydomain.com - sockets.mydomain.com - admin.mydomain.com
С помощью этой настройки я могиметь / здоровье в каждой службе без коллизий.
2.Разделяйте маршруты проверки работоспособности с помощью названия
. Я могу назвать маршрут проверки работоспособности по-разному для каждой службы, например:
- api.mydomain.com / health-public-api
- api.mydomain.com / health-messaging-api
- api.mydomain.com / health-admin-api
Предложения?
Оба вышеперечисленныхРешения кажутся жизнеспособными, но я хотел бы знать, может ли одно из решений укусить меня позже, когда, например, будет добавлено больше сервисов, или когда я добавлю API GraphQL позже.
edit:
Я столкнулся с одним недостатком решения # 1.Мой локальный dev-enviromnemt настроен с docker образом для каждой службы и nginx для маршрутизации запросов.Кроме того, я использую ngrok , чтобы получить доступ к среде разработки из Интернета.
Я думаю, что было бы трудно решить разделение служб в зависимости от поддоменов, но мне действительно не нужны маршруты / health в среде dev, поэтому я думаю, что могу просто притвориться, что их там нет.