15

Я пытаюсь понять, в каком сценарии я должен выбрать реестр услуг над балансировщиком нагрузки.Обнаружение службы и балансировка нагрузки

По моему мнению, оба решения покрывают ту же функциональность.

Например, если мы рассмотрим consul.io как список функций мы имеем:

  • Service Discovery
  • Здоровье Проверка
  • Key/Value Магазин
  • Мульти Datacenter

Где балансировщик нагрузки, такой как Amazon ELB, например, имеет:

  • конфигурируемый принимать трафик только от вашей балансировки нагрузки
  • принимать трафик, используя следующие протоколы: HTTP, HTTPS (Secure HTTP), TCP и SSL (безопасный TCP)
  • распространять запросы к экземплярам EC2 в нескольких зонах доступности
  • Число подключений масштабируется с количеством одновременных запросов, которые получает балансировщик нагрузки
  • настроить проверки работоспособности, которые использует балансировка эластичной нагрузки для мониторинга работоспособности экземпляров EC2 зарегистрированный в балансировщике нагрузки, чтобы он мог отправлять запросы только на здоровые экземпляры.
  • Вы можете использовать сквозное шифрование трафика в тех сетях, где используются безопасные (HTTPS/SSL) соединения
  • [EC2-VPC] Вы может создать балансировщик нагрузки, ориентированный на Интернет, который обрабатывает запросы клиентов через Интернет и направляет их в экземпляры EC2 или внутренний балансировщик нагрузки, который принимает запросы от клиентов в вашем VPC и направляет их в экземпляры EC2 в вашей частной подсеть. Балансиры нагрузки в EC2-Classic всегда обращены к Интернету.
  • [EC2-Classic] Балансиры нагрузки для EC2-Classic поддерживают как адреса IPv4, так и IPv6. Балансиры нагрузки для VPC не поддерживают адреса IPv6.
  • Вы можете контролировать свой балансировщик нагрузки с помощью показателей CloudWatch, журналов доступа и AWS CloudTrail.
  • Вы можете связать свой балансировщик нагрузки, ориентированный на Интернет, своим доменным именем.
  • т.д.

Таким образом, в этом случае я не понимать, почему я выбрал бы что-то вроде consul.io или netflix eureka над Amazon ELB для обнаружения службы.

У меня есть подозрение, что это может быть из-за реализацию клиента открытия стороны службы против открытия стороны службы сервера, но я не совсем уверен.

+0

https://stackoverflow.com/questions/46807757/service-discovery-on-aws-ecs-with-application-load-balancer этот пост также, кажется, имеют такую ​​же озабоченность –

ответ

7

Вы должны думать об этом как балансировку нагрузки на стороне клиента, так и балансировку нагрузки.

Балансиры нагрузки на стороне клиента включают Baker Street (http://bakerstreet.io); SmartStack (http://nerds.airbnb.com/smartstack-service-discovery-cloud/); или Consul HA Proxy (https://hashicorp.com/blog/haproxy-with-consul.html).

LBs на стороне клиента используют компонент обнаружения службы (Baker Street использует механизм обнаружения папок/подкаталогов без сохранения состояния, SmartStack использует ZooKeeper, Consul HA Proxy использует Consul) как часть их реализации, но они обеспечивают проверку работоспособности/которые вы, вероятно, ищете.

2

Компонент Service Discovery обычно имеет компонент уведомления. Это не балансировка нагрузки, хотя некоторые из них могут это сделать. Он может уведомлять зарегистрированных клиентов об изменениях, например, о снижении нагрузки.

Клиент может запросить обнаружение/реестр службы, чтобы запустить балансировщик нагрузки. Принимая во внимание, что балансировщик нагрузки не имеет никакого отношения к клиенту, когда он не работает.

0

Вы должны также прочитать о EUREKA


Amazon ELB предоставляет экземпляры EC2 для ваших запросов на обслуживание в зависимости от нагрузки балансира и IP-адреса экземпляров EC2 не соответствует, так что вы можете также использовать EUREKA, который делает одна и та же работа, но основана на реестре служб и балансировке нагрузки на стороне клиента, в которой клиент приложения для каждого региона имеет реестр. Вы можете прочитать об этом здесь: https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance

Смежные вопросы