資源描述:
《負載均衡策略及散列算法》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、淺談分布式應用By薛長俊2010-05-18負載均衡策略負載均衡算法負載均衡策略基于DNS的負載均衡。基于反向代理的負載均衡?;谔囟ǚ掌鬈浖呢撦d均衡?;贜AT的負載均衡?;贑DN的負載均衡?;贒NS的負載均衡實現(xiàn)原理:一個域名綁定多個IP,通過DNS服務中的隨機域名解析來實現(xiàn)?;贒NS的負載均衡優(yōu)點:實現(xiàn)簡單、實施容易、成本低、適用于大多數(shù)TCP/IP應用?;贒NS的負載均衡問題:一旦某個服務器出現(xiàn)故障,即使及時修改了DNS設置,還是要等待足夠的時間(刷新時間)才能發(fā)揮作用,在此期間保存了故障服務器地址的客戶計算機將不能正常訪問服務器。缺陷:DNS負
2、載均衡無法得知服務器之間的差異,它不能做到為性能較好的服務器多分配請求,也不能了解到服務器的當前狀態(tài),甚至會出現(xiàn)客戶請求集中在某一臺服務器上的偶然情況。基于反向代理的負載均衡實現(xiàn)原理:通過正則映射將請求重定向到內(nèi)容服務器。基于反向代理的負載均衡優(yōu)點:自帶高速緩沖,可減輕內(nèi)容服務器壓力,提速網(wǎng)絡訪問效率?;诜聪虼淼呢撦d均衡問題:針對每一次代理,代理服務器就必須打開兩個連接,一個對外,一個對內(nèi),因此在并發(fā)連接請求數(shù)量非常大的時候,代理服務器的負載也就非常大了,在最后代理服務器本身可能會成為服務的瓶頸。缺陷:反向代理是處于OSI參考模型第七層應用的,所以就必須為每一種
3、應用服務專門開發(fā)一個反向代理服務器,這樣就限制了反向代理負載均衡技術的應用范圍,現(xiàn)在一般都用于對web服務器的負載均衡?;谔囟ǚ掌鬈浖呢撦d均衡實現(xiàn)原理:利用網(wǎng)絡協(xié)議的重定向功能來實現(xiàn)。基于特定服務器軟件的負載均衡優(yōu)點:服務可定制,可依據(jù)底層服務器的性能及實況進行負載調(diào)控?;谔囟ǚ掌鬈浖呢撦d均衡問題:需要改動軟件,成本較高。缺陷:反向代理是處于OSI參考模型第七層應用的,所以就必須為每一種應用服務專門開發(fā)一個反向代理服務器,這樣就限制了反向代理負載均衡技術的應用范圍,現(xiàn)在一般都用于對web服務器的負載均衡。基于NAT的負載均衡實現(xiàn)原理:將一個外部IP地址映
4、射為多個內(nèi)部IP地址?;贜AT的負載均衡優(yōu)點:比較完善的負載均衡技術,均衡算法也較靈活,如隨機選擇、最少連接數(shù)及響應時間等來分配負載?;贜AT的負載均衡問題:伸縮能力有限,當服務器結(jié)點數(shù)目過多時,調(diào)度器本身有可能成為系統(tǒng)的新瓶頸?;贑DN的負載均衡實現(xiàn)原理:通過在現(xiàn)有的Internet中增加一層新的網(wǎng)絡架構,將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡“邊緣”,使用戶可以就近取得所需的內(nèi)容?;贑DN的負載均衡優(yōu)點:用戶訪問就近服務器,提高訪問速度。負載均衡算法輪詢算法。Hash散列算法。最少鏈接算法。最快鏈接算法。加權算法。動態(tài)反饋算法。輪詢算法實現(xiàn)原理:每一次把來自
5、用戶的請求輪流分配給內(nèi)部中的服務器,從1開始,直到N(內(nèi)部服務器個數(shù)),然后重新開始循環(huán)。輪詢算法優(yōu)點:簡介,無狀態(tài)調(diào)度。缺點:輪詢調(diào)度算法假設所有服務器的處理性能都相同,不關心每臺服務器的當前連接數(shù)和響應速度。當請求服務間隔時間變化比較大時,輪詢調(diào)度算法容易導致服務器間的負載不平衡。輪詢算法適用:服務器組中的所有服務器都有相同的軟硬件配置并且平均服務請求相對均衡的情況。Hash散列算法MD5。一致性Hash算法。各種經(jīng)典Hash算法。自定義Hash算法。Hash散列算法inthash(char*key_str,unsignedlongMAX_SS_NUM){reg
6、isterunsignedinth;registerunsignedchar*p;for(h=0,p=(unsignedchar*)key_str;*p;p++){h=31*h+*p;}return(h%MAX_SS_NUM);}一個較經(jīng)典的Hash算法。Hash散列算法unsignedhtable_hash(constchar*s,unsignedsize){unsignedlongh=0;unsignedlongg;char*md5s=MDString(s);while(*md5s){h=(h<<4)+*md5s++;if((g=(h&0xf0000000))!
7、=0){h^=(g>>24);h^=g;}}return(h%size);}一個使用了MD5的自定義Hash算法。最少鏈接算法實現(xiàn)原理:將請求分配至當前鏈接數(shù)最少的服務器。最少鏈接算法優(yōu)點:實現(xiàn)起來比較簡潔,在大多數(shù)情況下非常有效。缺點:當各個服務器的處理能力不同時,該算法并不理想。最少鏈接算法適用:需要長時處理的請求服務,如FTP等應用。最快鏈接算法實現(xiàn)原理:均衡器記錄自身到每一個集群節(jié)點的網(wǎng)絡響應時間,并將下一個到達的連接請求分配給響應時間最短的節(jié)點。適用:基于拓撲結(jié)構重定向的高級均衡策略。思考思考1:目前我們用到的負載均衡技術有哪些,都用在什么地方?思考2