![](/img/trans.png)
[英]How to avoid calling the database again when I already have all I need in the result of the SQL call
[英]Do I need to have HAProxy TCP/HTTP Load Balancer when I already have AWS ELB?
假設我在Amazon AWS上有20台服務器,我也為這些服務器設置了AWS ELB。 我聽說HAProxy是可靠且快速的TCP / HTTP負載均衡器,所以問題是:
謝謝
在某些情況下,人們選擇自己的負載平衡解決方案,如HAProxy,而不是ELB:
金融交易:ELB是一項不透明的服務。 不提供日志。 因此,如果您缺少交易,您將不知道ELB是否放棄了它們。
不適用於流量峰值:ELBs縮放至少需要5分鍾。 如果您的應用流量每5-10分鍾翻一番,那么效果會很好。 但如果它處於恆定速率並且你會突然出現尖峰,那么你將遇到ELB的問題。
ELB可能比運行自己的Loadbalancing慢:在我的環境中,通過使用HAProxy / Nginx(用於SSL終止),我獲得了15%的性能提升。 每次通話大概是30ms,但請記住我使用的是SSL,因此我使用CPU功率。
ELB只進行循環負載平衡,HAProxy有很多。
HAProxy還有更多ELB不支持的配置。 這取決於是否需要它們用於它們的應用。
在一套應用程序中,我都運行了。 ELB-> haproxy->一套應用程序。 在我的情況下會發生以下情況:
這樣做的好處是我可以在不更改URL的情況下移動應用程序。缺點是ELB不是固定的IP地址,因此如果您需要從IP地址而不是cname指向它,則無法執行此操作。
簡短回答:不,你不需要HAProxy。 和ELB一起去吧。
tldr;
是的HAProxy功能強大且經過測試。
首先,您需要一個單獨的EC2 HAProxy實例(而不是在每個需要平衡的EC2實例上安裝HAProxy)。 本質上,ELB等同於加載某種負載平衡軟件的EC2實例。
其次,在您的環境中同時使用ELB和HAProxy平衡實例是一種罕見的用例。 您可能需要更精細的訪問權限以及在負載均衡器上配置更多內容的能力。 它完全取決於你正在做什么以及ELB可能給你帶來什么問題。 谷歌閱讀可能的用例。
我正在使用ELB和Haproxy。
當客戶使用來自唯一IP的Web服務時,ELB會將其所有請求重定向到相同的主機。 它不會擴展。 (我認為這是來自src ip或類似的東西的哈希)。
haproxy有另一種平衡器算法。
我保留了ELB for HA(1 haproxy / availability zone)。 每個haproxy實例都會重新發送到區域區域后端服務器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.