15

我想了解在哪種情況下,我應該通過負載平衡器選擇服務註冊表。服務發現vs負載均衡

從我的理解這兩個解決方案覆蓋了相同的功能。

舉例來說,如果我們考慮consul.io作爲一個功能列表,我們有:

  • 服務發現
  • 健康檢查
  • 鍵/值存儲
  • 多數據中心

如果負載平衡器像Amazon ELB例如有:

  • 配置只能從負載平衡器
  • 接受流量使用以下協議接受流量:HTTP,HTTPS(安全HTTP),TCP和SSL(安全TCP)
  • 分發向多個可用區中的EC2實例發送請求
  • 連接數與負載平衡器接收到的併發請求數成比例
  • 配置Elastic Load Balancing用於監視EC2實例運行狀況的運行狀況檢查向負載平衡器註冊,以便它只能將請求發送到健康實例
  • 您可以在使用安全(HTTPS/SSL)連接的網絡上使用端到端流量加密
  • [EC2-VPC] You可以創建面向Internet的負載均衡器,該平衡器通過Internet從客戶端接收請求並將它們路由到您的EC2實例或面向內部的負載均衡器,該負載均衡器從VPC中的客戶端獲取請求並將它們路由到您的私有EC2實例子網。 EC2-Classic中的負載平衡器始終面向互聯網。
  • [EC2-Classic] EC2-Classic的負載均衡器支持IPv4和IPv6地址。 VPC的負載平衡器不支持IPv6地址。
  • 您可以使用CloudWatch指標,訪問日誌和AWS CloudTrail監控負載均衡器。
  • 您可以將面向Internet的負載平衡器與您的域名相關聯。

因此,在這種情況下,我不理解爲什麼我會選像consul.ionetflix eurekaAmazon ELB服務發現。

我有一種預感,這可能是由於實施客戶端服務發現 VS 服務器端的服務發現,但我不能肯定。

+0

https://stackoverflow.com/questions/46807757/service-discovery-on-aws-ecs-with-application-load-balancer 這個帖子似乎也有同樣的關注 –

回答

7

您應該將其視爲客戶端負載平衡與專用負載平衡。客戶端負載均衡器包括貝克街(http://bakerstreet.io);客戶端負載均衡器包括Baker Street(http://bakerstreet.io);客戶端負載均衡器包括Baker Street(http://bakerstreet.io); Baker Street(http://bakerstreet.io) SmartStack(http://nerds.airbnb.com/smartstack-service-discovery-cloud/);或領事HA代理(https://hashicorp.com/blog/haproxy-with-consul.html)。

客戶端LB使用服務發現組件(Baker Street使用無狀態發佈/訂閱服務發現機制; SmartStack使用ZooKeeper; Consul HA代理使用Consul)作爲其實現的一部分,但它們提供健康檢查/您可能正在尋找的端到端功能。

2

服務發現組件通常有一個通知組件。這不是一個負載均衡器,儘管有些可能有這樣的能力。它可以通知註冊客戶有關更改,例如負載均衡器正在關閉。

客戶端可以查詢服務發現/註冊表以獲取正在運行的負載平衡器。而負載平衡器在客戶端關閉時不會拒絕客戶端。

0

你也應該閱讀有關EUREKA


亞馬遜ELB提供的EC2實例基於負載均衡服務請求和EC2實例的IP地址並不一致,所以你也可以使用EUREKA哪些呢同樣的工作,但基於服務註冊和客戶端負載平衡,其中每個區域的應用程序客戶端都有註冊表。 你可以閱讀更多關於它在這裏: https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance