Web負載均衡的幾種實現方式

2022-05-04 16:48:08 字數 4141 閱讀 3406

負載均衡(load balance)是集群技術(cluster)的一種應用。負載均衡可以將工作任務分攤到多個處理單元,從而提高併發處理能力。目前最常見的負載均衡應用是web負載均衡。根據實現的原理不同,常見的web負載均衡技術包括:dns輪詢、ip負載均衡和cdn。其中ip負載均衡可以使用硬體裝置或軟體方式來實現。

什麼是web負載均衡

伺服器集群(cluster)使得多個伺服器節點能夠協同工作,根據目的的不同,伺服器集群可以分為:

高效能集群:將單個重負載的請求分散到多個節點進行處理,最後再將處理結果進行彙總

高可用集群:提高冗餘單元,避免單點故障

負載均衡集群:將大量的併發請求分擔到多個處理節點。由於單個處理節點的故障不影響整個服務,負載均衡集群同時也實現了高可用性。

一般提到的負載均衡(load balance),是指實現負載均衡集群。負載均衡實現了橫向擴充套件,避免縱向的公升級換代。

本文中的web負載均衡,特指能夠分擔web請求(http,https等)的負載均衡技術。

基本原理

任何的負載均衡技術都要想辦法建立某種一對多的對映機制: 乙個請求的入口對映到多個處理請求的節點,從而實現分而治之(divide and conquer)。

這種對映機制使得多個物理存在對外體現為乙個虛擬的整體,對服務的請求者遮蔽了內部的結構。

採用不同的機制建立對映關係,可以形成不同的負載均衡技術,常見的包括:dns輪詢、cdn、ip負載均衡

dns

dns輪詢是最簡單的負載均衡方式。以網域名稱作為訪問入口,通過配置多條dns a記錄使得請求可以分配到不同的伺服器。

dns輪詢沒有快速的健康檢查機制,而且只支援wrr的排程策略導致負載很難「均衡」,通常用於要求不高的場景。 並且dns輪詢方式直接將伺服器的真實位址暴露給使用者,不利於伺服器安全。

cdn

cdn(content delivery network,內容分發網路)。通過發布機制將內容同步到大量的快取節點,並在dns伺服器上進行擴充套件, 找到裡使用者最近的快取節點作為服務提供節點。

因為很難自建大量的快取節點,所以通常使用cdn運營商的服務。目前國內的服務商很少,而且按流量計費,**也比較昂貴。

ip負載均衡ip負載均衡可以使用硬體裝置,也可以使用軟體實現。硬體裝置的主要產品是f5-big-ip-gtm(簡稱f5),

軟體產品主要有lvs、haproxy、nginx。其中lvs、haproxy可以工作在4-7層,nginx工作在7層。關於三者的簡單對比,可以參考這裡。

硬體負載均衡裝置可以將核心部分做成晶元,效能和穩定性更好,而且商用產品的可管理性、文件和服務都比較好。唯一的問題就是**。

軟體負載均衡通常是開源軟體。自由度較高,但學習成本和管理成本會比較大。

f5

f5的全稱是f5-big-ip-gtm,是最流行的硬體負載均衡裝置,其併發能力達到百萬級。f5的主要特性包括:

多鏈路的負載均衡和冗餘

可以接入多條isp鏈路,在鏈路之間實現負載均衡和高可用。

防火牆負載均衡

f5具有異構防火牆的負載均衡與故障自動排除能力。

伺服器負載均衡

這是f5最主要的功能,f5可以配置針對所有的對外提供服務的伺服器配置virtual server實現負載均衡、健康檢查、回話保持等。

高可用f5裝置自身的冗餘設計能夠保證99.999%的正常執行時間,雙機f5的故障切換時間為毫秒級。

使用f5可以配置整個集群的鏈路冗餘和伺服器冗餘,提高可靠的健康檢查機制,以保證高可用。

安全性與防火牆類似,f5採用預設拒絕策略,可以為任何站點增加額外的安全保護,防禦普通網路攻擊,包括ddos、ip欺騙、syn攻擊、teartop和land攻擊、icmp攻擊等。

易於管理

f5提供https、ssh、telnet、snmp等多種管理方式,包含詳盡的實時報告和歷史紀錄報告。同時還提供二次開發包(i-control)。

其他技能

f5還提供了ssl加速、軟體公升級、ip位址過濾、頻寬控制等輔助功能。

負載均衡(load balance)是集群技術(cluster)的一種應用。負載均衡可以將工作任務分攤到多個處理單元,從而提高併發處理能力。目前最常見的負載均衡應用是web負載均衡。根據實現的原理不同,常見的web負載均衡技術包括:dns輪詢、ip負載均衡和cdn。其中ip負載均衡可以使用硬體裝置或軟體方式來實現。

什麼是web負載均衡

伺服器集群(cluster)使得多個伺服器節點能夠協同工作,根據目的的不同,伺服器集群可以分為:

高效能集群:將單個重負載的請求分散到多個節點進行處理,最後再將處理結果進行彙總

高可用集群:提高冗餘單元,避免單點故障

負載均衡集群:將大量的併發請求分擔到多個處理節點。由於單個處理節點的故障不影響整個服務,負載均衡集群同時也實現了高可用性。

一般提到的負載均衡(load balance),是指實現負載均衡集群。負載均衡實現了橫向擴充套件,避免縱向的公升級換代。

本文中的web負載均衡,特指能夠分擔web請求(http,https等)的負載均衡技術。

基本原理

任何的負載均衡技術都要想辦法建立某種一對多的對映機制: 乙個請求的入口對映到多個處理請求的節點,從而實現分而治之(divide and conquer)。

這種對映機制使得多個物理存在對外體現為乙個虛擬的整體,對服務的請求者遮蔽了內部的結構。

採用不同的機制建立對映關係,可以形成不同的負載均衡技術,常見的包括:dns輪詢、cdn、ip負載均衡

dns

dns輪詢是最簡單的負載均衡方式。以網域名稱作為訪問入口,通過配置多條dns a記錄使得請求可以分配到不同的伺服器。

dns輪詢沒有快速的健康檢查機制,而且只支援wrr的排程策略導致負載很難「均衡」,通常用於要求不高的場景。 並且dns輪詢方式直接將伺服器的真實位址暴露給使用者,不利於伺服器安全。

cdn

cdn(content delivery network,內容分發網路)。通過發布機制將內容同步到大量的快取節點,並在dns伺服器上進行擴充套件, 找到裡使用者最近的快取節點作為服務提供節點。

因為很難自建大量的快取節點,所以通常使用cdn運營商的服務。目前國內的服務商很少,而且按流量計費,**也比較昂貴。

ip負載均衡ip負載均衡可以使用硬體裝置,也可以使用軟體實現。硬體裝置的主要產品是f5-big-ip-gtm(簡稱f5),

軟體產品主要有lvs、haproxy、nginx。其中lvs、haproxy可以工作在4-7層,nginx工作在7層。關於三者的簡單對比,可以參考這裡。

硬體負載均衡裝置可以將核心部分做成晶元,效能和穩定性更好,而且商用產品的可管理性、文件和服務都比較好。唯一的問題就是**。

軟體負載均衡通常是開源軟體。自由度較高,但學習成本和管理成本會比較大。

f5

f5的全稱是f5-big-ip-gtm,是最流行的硬體負載均衡裝置,其併發能力達到百萬級。f5的主要特性包括:

多鏈路的負載均衡和冗餘

可以接入多條isp鏈路,在鏈路之間實現負載均衡和高可用。

防火牆負載均衡

f5具有異構防火牆的負載均衡與故障自動排除能力。

伺服器負載均衡

這是f5最主要的功能,f5可以配置針對所有的對外提供服務的伺服器配置virtual server實現負載均衡、健康檢查、回話保持等。

高可用f5裝置自身的冗餘設計能夠保證99.999%的正常執行時間,雙機f5的故障切換時間為毫秒級。

使用f5可以配置整個集群的鏈路冗餘和伺服器冗餘,提高可靠的健康檢查機制,以保證高可用。

安全性與防火牆類似,f5採用預設拒絕策略,可以為任何站點增加額外的安全保護,防禦普通網路攻擊,包括ddos、ip欺騙、syn攻擊、teartop和land攻擊、icmp攻擊等。

易於管理

f5提供https、ssh、telnet、snmp等多種管理方式,包含詳盡的實時報告和歷史紀錄報告。同時還提供二次開發包(i-control)。

其他技能

f5還提供了ssl加速、軟體公升級、ip位址過濾、頻寬控制等輔助功能。

負載均衡的幾種實現方式

1 http重定向負載均衡。這種負載均衡方案的優點是比較簡單,缺點是瀏覽器需要每次請求兩次伺服器才能拿完成一次訪問,效能較差。2 dns網域名稱解析負載均衡。dns網域名稱解析負載均衡的優點是將負載均衡工作交給dns,省略掉了網路管理的麻煩,缺點就是dns可能快取a記錄,不受 控制。3 反向 負載均...

負載均衡的幾種實現方式

1 http重定向負載均衡。負載均衡的幾種實現方式 這種負載均衡方案的優點是比較簡單,缺點是瀏覽器需要每次請求兩次伺服器才能拿完成一次訪問,效能較差。2 dns網域名稱解析負載均衡。dns網域名稱解析負載均衡的優點是將負載均衡工作交給dns,省略掉了網路管理的麻煩,缺點就是dns可能快取a記錄,不受...

實現負載均衡的幾種方式

當一台伺服器的單位時間內的訪問量越大時,伺服器壓力就越大,大到超過自身承受能力時,伺服器就會崩潰。為了避免伺服器崩潰,讓使用者有更好的體驗,我們通過負載均衡的方式來分擔伺服器壓力。我們可以建立很多很多伺服器,組成乙個伺服器集群,當使用者訪問 時,先訪問乙個中間伺服器,在讓這個中間伺服器在伺服器集群中...