Вы ищете следующие компоненты,
Реестр служб : Весь смысл этого компонента в том, чтобы отслеживать, «какая служба работает на каких адресах»».Это может быть так же просто, как простая база данных, в которой хранятся записи для всех запущенных служб и их экземпляров.Обычно служба оркестровки отвечает за регистрацию новых экземпляров службы в реестре служб.Другой выбор может состоять в том, чтобы сами экземпляры уведомляли реестр служб об их существовании.
Проверка работоспособности службы : Этот компонент в основном отвечает за выполнение периодических проверок во время выполнения для зарегистрированных экземпляров службы и сообщает реестру службы, если какой-либо из них не работает.Реализация реестра служб может затем пометить эти экземпляры как «неактивные» до тех пор, пока они не обнаружат, что они будут работать средством проверки работоспособности службы в будущем (если вообще когда-либо).
Разрешение службы : это концептуальный компонент, отвечающий за предоставление клиенту возможности каким-либо образом получить доступ к работающим экземплярам службы.
Весь вышеперечисленный компонент называется Обнаружение службы .
В вашем случае у вас есть load-balancers
, который может выступать в качестве формы ServiceDiscovery.
Я не думаю, что load-balancers
сильно изменится со временем, если вам не потребуется оченьпродвинутая архитектура, поэтому ваш API-шлюз может просто «знать» URL для балансировщиков нагрузки для всех ваших сервисов.Таким образом, вам не действительно нужно реестр служб слой.
Теперь ваши балансировщики нагрузки по своей природе обеспечивают механизм проверки работоспособности и карантина для экземпляров.Таким образом, вам не нужен дополнительный слой проверки работоспособности.
Итак, единственное, чего не хватает, это зарегистрировать ваши экземпляры с помощью балансировщика нагрузки.В этой части вам нужно будет выяснить, исходя из того, какие у вас есть балансировщики нагрузки и в какой экосистеме они живут.
Если вы живете в экосистеме AWS, а ваши балансировщики нагрузки - ELB, то вам нужно разобраться вэто уважение.