AWS ELB и сервисный реестр

В архитектуре микросервисов не рекомендуется жестко указывать URL-адреса сервисов в коде или в конфигурациях, поскольку это может измениться. Для этого мы используем шаблон обнаружения службы. Но того же можно добиться с помощью AWS ELB. После того, как я зарегистрирую свои службы в ELB и жестко запрограммирую их URL-адрес, изменение IP-адреса службы не изменится, поскольку URL-адрес ELB останется прежним.

Итак, в чем разница между жестким кодированием URL-адреса AWS ELB в конфигурации кода и использованием инструментов реестра сервисов, таких как Eureka, Istio?


person Deepak Chougule    schedule 08.01.2019    source источник


Ответы (2)


Я вижу два основных отличия в обнаружении сервисов с помощью таких инструментов, как Eureka, Istio или AWS ELB.

  1. При использовании AWS ELB вы как бы зависите от облачной реализации или облачного провайдера. Теперь ваше развертывание связано с облачным сервисом. Теперь, если в будущем вам придется изменить облако (скажем, вы хотите перейти на Azure по какой-либо причине), миграция потребует дополнительных усилий, поскольку вам нужно будет настроить вспомогательную часть обнаружения облачных служб в новом облаке. Но в случае прямого использования Eureka или istio вам просто нужно развернуть свои артефакты и соответствующую конфигурацию на новой облачной платформе.

  2. Второе отличие заключается в том, как клиент внутри может обнаружить целевые службы.

Существует два шаблона обнаружения служб:

Eureka, Istio — это обнаружение службы на стороне клиента. Клиент обращается непосредственно к реестру службы и получает полный адрес (хост и порт) вызываемой службы. Итак, в конце концов, клиент знает хост и порт обслуживания, и именно клиент делает окончательный запрос к целевому сервису, поэтому это называется обнаружением на стороне клиента.

AWS ELB обнаружение службы на стороне сервера. Клиент общается с балансировщиком нагрузки (или маршрутизатором). Маршрутизатор внутренне обнаруживает адрес службы через реестр служб, а затем выполняет дальнейший вызов целевой службы.

Основное отличие

  • Клиент никогда не узнает адрес целевой службы, или клиенту никогда не нужно знать подробности целевой службы.
  • Клиентский код становится проще, поскольку ему не нужно заниматься обнаружением службы.
person Dhruv Bansal    schedule 11.01.2019

Реестр служб, такой как Eureka, является примером обнаружения служб на стороне клиента. AWS ELB представляет собой обнаружение сервисов на стороне сервера.

Пожалуйста, пройдите через - https://microservices.io/patterns/service-registry.html для глубокого погружения.

person K.AJ    schedule 10.01.2019