Client-side service discovery

Discovery - открытие или находка.

Контекст
ПРоблемная Маша:
Мы перешли на микры и все было хорошо пока не стали запускать реплики микров
Выручающий Саша:
А в чем проблема?
ПРоблемная Маша:
Прописала в одном микре адрес другого и дергала по фейн клиенту, а потом запустила реплику второго микра, а он без дела крутиться, как сделать чтобы первый балансировал запросы между репликами второго микра
Выручающий Саша:
Нужен discovery server, выбери подходящую реализацию этого паттерна и он будет всем рассказывать про реплики твоего микра
Проблема
Как клиент сервиса узнает адрес экземпляра сервиса? Учитывая, что адреса могут динамично меняться и плюс к этому могут динамично добавляться и удаляться реплики сервиса.
Решение
Сделать реестр сервисов.

При старте каждый сервис будет регистрироваться в данном реестре.
И каждый сервис будет получать информацию о доступных сервисах из данного реестра.
Discovery на стороне клиента
Discovery на стороне клиента
Реализации паттерна Discovery
Преимущества Client-side discovery
  • Меньше нагрузка на сеть по сравнению с обнаружением на стороне сервера
  • Нет завязки на маршрутизатор
Недостатки Client-side discovery
  • Есть связь сервиса и реестра
  • Нужна логика обнаружения сервиса на стороне клиента
Онлайн-школа профессионального программирования на java для коммерческих разработчиков и соискателей.
2 главные задачи, которые мы решаем:
  1. Трудоустройство и успешное прохождение испыталки.
  2. Переход на современный стек middle+
Наше главное достояние:
Менторская поддержка 24/7 и обучение в формате живого общения
Получить консультацию по обучению