负载均衡—几种常见算法
什么是負載均衡?
當一臺服務(wù)器的性能達到極限時,我們可以使用服務(wù)器集群來提高網(wǎng)站的整體性能。那么,在服務(wù)器集群中,需要有一臺服務(wù)器充當調(diào)度者的角色,用戶的所有請求都會首先由它接收,調(diào)度者再根據(jù)每臺服務(wù)器的負載情況將請求分配給某一臺后端服務(wù)器去處理。那么在這個過程中,調(diào)度者如何合理分配任務(wù),保證所有后端服務(wù)器都將性能充分發(fā)揮,從而保持服務(wù)器集群的整體性能最優(yōu),這就是負載均衡問題。
第一種:輪詢方式
第二種:隨機方式
第三種:加權(quán)輪詢方式
第四種:一致哈希方式
?
輪詢方式:
輪詢法的優(yōu)點在于:試圖做到請求轉(zhuǎn)移的絕對均衡。
輪詢法的缺點在于:為了做到請求轉(zhuǎn)移的絕對均衡,必須付出相當大的代價,因為為了保證pos變量修改的互斥性,需要引入重量級的悲觀鎖synchronized,這將會導致該段輪詢代碼的并發(fā)吞吐量發(fā)生明顯的下降。
?
隨機方式:通過系統(tǒng)隨機函數(shù),根據(jù)后端服務(wù)器列表的大小值來隨機選擇其中一臺進行訪問。由概率統(tǒng)計理論可以得知,隨著調(diào)用量的增大,其實際效果越來越接近于平均分配流量到每一臺后端服務(wù)器,也就是輪詢的效果。
?
加權(quán)輪詢:不同的服務(wù)器可能機器配置和當前系統(tǒng)的負載并不相同,因此它們的抗壓能力也不盡相 同,給配置高、負載低的機器配置更高的權(quán)重,讓其處理更多的請求,而低配置、高負載的機器,則給其分配較低的權(quán)重,降低其系統(tǒng)負載。加權(quán)輪詢法可以很好地 處理這一問題,并將請求順序按照權(quán)重分配到后端。
?
一致哈希:
步驟:
?
從上圖的狀態(tài)中添加一臺memcached服務(wù)器。余數(shù)分布式算法由于保存鍵的服務(wù)器會發(fā)生巨大變化而影響緩存的命中率,但Consistent Hashing中,只有在園(continuum)上增加服務(wù)器的地點逆時針方向的第一臺服務(wù)器上的鍵會受到影響,如下圖所示:
?
轉(zhuǎn)載于:https://www.cnblogs.com/qkqBeer/articles/10906959.html
總結(jié)
以上是生活随笔為你收集整理的负载均衡—几种常见算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乐高mindstormsev3_乐高MI
- 下一篇: Fedora7 安装完全过程