負(fù)載均衡技術(shù)能夠平衡服務(wù)器集群中所有的服務(wù)器和請求應(yīng)用之間的通信負(fù)載,根據(jù)實時響應(yīng)時間進(jìn)行判斷,將任務(wù)交由負(fù)載最輕的服務(wù)器來處理,以實現(xiàn)真正的智能通信管理和最佳的服務(wù)器群性能,從而使網(wǎng)站始終保持運(yùn)行和保證其可訪問性。
為了充分利用現(xiàn)有服務(wù)器軟件的種種優(yōu)勢,負(fù)載均衡最好是在服務(wù)器軟件之外來完成。而最早使用的負(fù)載均衡技術(shù)是通過DNS服務(wù)中的隨機(jī)名字解析來實現(xiàn)的。這就是通常所說的DNS負(fù)載均衡技術(shù)。
DNS負(fù)載均衡技術(shù)的實現(xiàn)原理是在DNS服務(wù)器中為同一個主機(jī)名配置多個IP地址,在應(yīng)答DNS查詢時,DNS服務(wù)器對每個查詢將以DNS文件中主機(jī)記錄的IP地址按順序返回不同的解析結(jié)果,將客戶端的訪問引導(dǎo)到不同的機(jī)器上去,使得不同的客戶端訪問不同的服務(wù)器,從而達(dá)到負(fù)載均衡的目的。
DNS負(fù)載均衡的基本原理 1.dns系統(tǒng)本身是一個分布式的網(wǎng)絡(luò),它是相對可靠的,起碼比你網(wǎng)站本身可靠的多
2.dns的最終解釋是可以受我們自己控制的
有了這兩條結(jié)論,剩下的事情就簡單了,我們只需要在最終解釋的查詢結(jié)果上做文章就可以了。簡單來說,就是將你的所有服務(wù)器地址,按照自己需求制定的頻次,返回給用戶。
以github.com為例,我們首先獲取它的SOA服務(wù)器(因為dns緩存查詢服務(wù)器會緩存結(jié)果,如果你直接去查詢域名,會每次返回一樣的結(jié)果),.com的dns域名服務(wù)器也是13臺,它們是[a-m].gtld-servers.net,我們隨便選一臺來找找github.com的SOA
OK,我們獲取了四個SOA服務(wù)器ns[1-4].p16.dynect.net,再隨便選一個來問問github.com對應(yīng)的記錄吧,順便試幾次看看最終的ip地址會不會變化
我們這里查詢了兩次,注意ANSWER SECTION部分返回了兩個結(jié)果,一次是192.30.252.129,一次是192.30.252.128。
這就是利用dns實現(xiàn)了負(fù)載均衡,你的最終訪問會到達(dá)不同的ip地址。
有哪些DNS服務(wù)商支持負(fù)載均衡呢? 這是一種比較高級的服務(wù),一般域名注冊商的dns服務(wù)器不會支持,目前我已知支持它的服務(wù)商有
1.AWS Route 53
2.NSONE
3.Dyn
4.dnspod
其中1和4是我們已經(jīng)在使用的,效果比較理想。
直到現(xiàn)在,很多網(wǎng)站仍然使用DNS負(fù)載均衡來保證網(wǎng)站的運(yùn)行和可訪問性。從其實現(xiàn)和效果來看,主要有以下優(yōu)缺點(diǎn):
主要優(yōu)點(diǎn) 這種技術(shù)的主要缺點(diǎn)如下:
第一,技術(shù)實現(xiàn)比較靈活、方便,簡單易行,成本低,適用于大多數(shù)TCP/IP應(yīng)用。不需要網(wǎng)絡(luò)專家來對之進(jìn)行設(shè)定,或在出現(xiàn)問題時對之進(jìn)行維護(hù)。
第二,對于Web應(yīng)用來說,不需要對代碼作任何的修改。事實上,Web應(yīng)用本身并不會意識到負(fù)載均衡配置,即使在它面前。
第三,Web服務(wù)器可以位于互聯(lián)網(wǎng)的任意位置上。
主要缺點(diǎn) DNS負(fù)載均衡技術(shù)在具有以上優(yōu)點(diǎn)的時候,其缺點(diǎn)也非常明顯,主要表現(xiàn)在:
第一,不能夠按照Web服務(wù)器的處理能力分配負(fù)載。DNS負(fù)載均衡采用的是簡單的輪循負(fù)載算法,不能區(qū)分服務(wù)器之間的差異,不能反映服務(wù)器的當(dāng)前運(yùn)行狀態(tài)。所以DNS服務(wù)器將Http請求平均地分配到后臺的Web服務(wù)器上,而不考慮每個Web服務(wù)器當(dāng)前的負(fù)載情況。如果后臺的Web服務(wù)器的配置和處理能力不同,最慢的 Web服務(wù)器將成為系統(tǒng)的瓶頸,處理能力強(qiáng)的服務(wù)器不能充分發(fā)揮作用。不能做到為性能較好的服務(wù)器多分配請求,甚至?xí)霈F(xiàn)客戶請求集中在某一臺服務(wù)器上的情況。
第二,不支持高可靠性,DNS負(fù)載均衡技術(shù)沒有考慮容錯。如果后臺的某臺Web服務(wù)器出現(xiàn)故障,DNS服務(wù)器仍然會把DNS 請求分配到這臺故障服務(wù)器上,導(dǎo)致不能響應(yīng)客戶端。
第三,可能會造成額外的網(wǎng)絡(luò)問題。為了使本DNS服務(wù)器和其他DNS服務(wù)器及時交互,保證DNS數(shù)據(jù)及時更新,使地址能隨機(jī)分配,一般都要將DNS的刷新時間設(shè)置的較小,但太小將會使DNS流量大增造成額外的網(wǎng)絡(luò)問題。
第四,一旦某個服務(wù)器出現(xiàn)故障,即使及時修改了DNS設(shè)置,還是要等待足夠的時間(刷新時間)才能發(fā)揮作用,在此期間,保存了故障服務(wù)器地址的客戶計算機(jī)將不能正常訪問服務(wù)器。
總結(jié) 從上面的總結(jié)我們可以看出,總體來說,DNS負(fù)載均衡技術(shù)方案不應(yīng)該算是真正意義上的負(fù)載均衡,不能夠穩(wěn)定、可靠、高效地滿足企業(yè)對Web服務(wù)器的需求,也不能滿足網(wǎng)絡(luò)用戶對網(wǎng)站訪問的及時響應(yīng)和可用性,所以現(xiàn)在很多Web站點(diǎn)方案中,已經(jīng)很少采用這種方案了。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!