Discovery, которые не требуют хардкода в коде приложения. То есть взять ту же Eureka, я обязан прописывать каким-то образом логику в коде приложения чтобы регистрироваться и так далее. Как по мне, это ужасно плохо, потому что приложение знает о какой-то фигне.
Вот сейчас стоит такой вопрос, есть Keycloak сервер, каким образом я могу его найти с помощью Service Discovery? мне нужно естественно зарегистрировать его. Понятное дело что я могу днс настроить между контейнерами и все дела.
Но может есть что-то элегантное?
А вообще очевидно, что нет, потому что service discovery/registry подразумевает, что приложение, собственно, умеет там регистрироваться. Для того, чтобы там регистрироваться, надо знать, какое у имплементации паттерна АПИ (куда стучаться, какие эндпойнты вообще у SD-сервиса есть). Это нельзя знать, не затянув это в код.
Мы делали подобное - интегрировали eureka с kubernates/swarm и так далее и с помощью тегов в контейнере регистрировали сервис например поднялся контейнер БД у него тег mysql, userdb мы её зарегали в SD а по тегу mysql поняли как ее чекать далее rabbitmq, logmq и т.д.
Обсуждают сегодня