AWS ELB против сервисного реестра - PullRequest
0 голосов
/ 08 января 2019

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

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

Ответы [ 2 ]

0 голосов
/ 11 января 2019

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

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

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

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

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

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

Большая разница -

  • Клиент никогда не узнал адрес целевой службы, или клиенту никогда не нужно было знать детали целевой службы.
  • Код клиента становится проще, так как он не должен иметь дело с обнаружением службы.
0 голосов
/ 10 января 2019

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

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

...