www.tmsmall666.cn
一、 基于UDP協(xié)議的健康檢查
相較于TCP,UDP是無連接的協(xié)議,盡管協(xié)議交互更加簡單,但是健康檢查方法卻并不簡單。因?yàn)閷τ赥CP來說,只要無法正常建立TCP連接,即可說明服務(wù)器端應(yīng)用服務(wù)不正常。但是,利用UDP進(jìn)行通信時,卻并無嚴(yán)格要求服務(wù)器在收到UDP請求報文時必須進(jìn)行確認(rèn)。因此,UDP健康檢查主要是看在發(fā)送出UDP的健康檢查報文后,是否會收到ICMP unreachable的報文。如果沒收到這種報文,就說明應(yīng)用正常運(yùn)行;如果收到這種ICMP報文,則說明應(yīng)用發(fā)送了故障。
二、基于TCP協(xié)議的健康檢查
常見的應(yīng)用程序都會使用一個固定的監(jiān)聽端口,比如:HTTP運(yùn)行在80端口,F(xiàn)TP運(yùn)行在21/20端口、HTTPS運(yùn)行在443端口等等。因此,TCP健康檢查就是負(fù)載均衡與對應(yīng)的服務(wù)器應(yīng)用端口進(jìn)行TCP三次握手,如果握手成功,則說明服務(wù)器上的應(yīng)用正常工作,如果握手失敗,則說明當(dāng)前服務(wù)器運(yùn)行情況不正常。
三、 基于ICMP協(xié)議的健康檢查
利用ICMP進(jìn)行健康檢查是負(fù)載均衡最常用也是最基本的健康檢查方式。負(fù)載均衡向被檢測的服務(wù)器發(fā)送一個ICMP Request,如果能收到服務(wù)器的ICMP Reply,則說明服務(wù)器當(dāng)前正常運(yùn)行。一般情況下,ICMP健康檢查只能說明服務(wù)器正在運(yùn)行,但是,對服務(wù)器上運(yùn)行的應(yīng)用卻無任何感知,因此,ICMP健康檢查常用于一些鏈路負(fù)載均衡的部署環(huán)境,在應(yīng)用服務(wù)器負(fù)載均衡的環(huán)境中,ICMP是不太可靠的。
四、 基于腳本的健康檢查方法
在某些情況下,由于用戶的一些應(yīng)用特殊性,無法用與常規(guī)的健康檢查方法進(jìn)行健康檢查。例如:在某些鏈路健康狀態(tài)檢查時,必須采用指定的源地址進(jìn)行鏈路的健康檢查,在這些情況下,我們可以用一個簡單的腳本來解決問題。
A10的AX上提供了豐富的健康檢查方法,從簡單的ICMP、TCP、UDP到基于應(yīng)用內(nèi)容檢測的HTTP、HTTPS、FTP、SIP等等。下面,我們將以A10網(wǎng)絡(luò)的AX負(fù)載均衡為例,來說明這些常見的負(fù)載均衡的配置方法。
五、 基于應(yīng)用內(nèi)容的健康檢查方法
利用常見的ICMP、TCP和UDP健康檢查方法,盡管能夠?qū)Ψ?wù)器的健康狀態(tài)進(jìn)行檢查,但是,我們有時候會發(fā)現(xiàn),盡管仍然能與服務(wù)器建立TCP三次握手,但是,服務(wù)器卻無法正常響應(yīng)客戶端請求。在這種情況下,我們需要更進(jìn)一步,采用基于應(yīng)用內(nèi)容的健康檢查方法。
例如,對于Web應(yīng)用服務(wù)器,我們可以模擬客戶端發(fā)送一個HTTP請求,根據(jù)響應(yīng)的內(nèi)容或響應(yīng)狀態(tài)碼來判斷Web應(yīng)用服務(wù)器的健康狀態(tài)。
六、AX上默認(rèn)的健康檢查方法
在AX上,默認(rèn)會對服務(wù)器以及服務(wù)器上配置的端口進(jìn)行健康檢查。對服務(wù)器本身采用ICMP的方式進(jìn)行健康檢查,對于服務(wù)器上配置的端口,則根據(jù)端口的類型,采用TCP或UDP的健康檢查方法。如下面的例子:
slb server rs-test 192.168.203.101
port 80 tcp
port 8080 tcp
后端服務(wù)器上開啟了80端口的HTTP服務(wù),但是,盡管在負(fù)載均衡上配置了8080端口,但在服務(wù)器上該端口并未部署任何服務(wù)。無需額外配置任何健康檢查方法,AX已經(jīng)檢測出目前這些服務(wù)的健康狀態(tài):
ax-1#show health stat
Health monitor statistics
...<省略部分輸出內(nèi)容>...
IP address Port Health monitor Status Cause(Up/Down) Retry PIN
--------------------------------------------------------------------------------
192.168.203.101 default UP 11 /7 @8 7 0 /0 0
192.168.203.101 80 default UP 20 /0 @0 0 0 /0 0
192.168.203.101 8080 default DOWN 0 /81 @3 0 0 /0 0 ax-1#
從上面的輸出可以看出,AX對于服務(wù)器及應(yīng)用端口采用的是默認(rèn)的健康檢查方法。對于服務(wù)器與其上的80/8080端口,AX的檢測結(jié)果為:
1) 服務(wù)器可“ping”通,因此狀態(tài)為“UP”;
2) 80端口可建立TCP連接,因此狀態(tài)為“UP”
3) 8080端口無法建立TCP連接,因此狀態(tài)為“DOWN”。
此外,還需要特別指出的是,為了降低AX健康檢查的資源消耗,如果AX對服務(wù)器上的健康檢查失敗的話,AX將不會再對端口進(jìn)行健康檢查。因此,在實(shí)際部署時,需要確認(rèn)服務(wù)器可以正常響應(yīng)ICMP請求,否則,將會影響應(yīng)用的健康檢查結(jié)果。
健康檢查方法中的全局參數(shù)
AX上的健康檢查方法,有幾個共性的參數(shù):
1) 檢查間隔時間(Interval):指明AX進(jìn)行健康檢查的時間間隔,間隔時間越小,檢查越精確,但系統(tǒng)用于健康檢查的開銷越大。
2) 最大重試次數(shù)(Max Retry):指明AX在健康檢查失敗后,在將應(yīng)用或服務(wù)器標(biāo)記為DOWN之前,需要進(jìn)行的健康檢查次數(shù)。
3) 超時時間(Timeout):說明AX等待回包的最大超時時間,超過這個時間,則說明健康檢查有問題。
4) 恢復(fù)前重試次數(shù)(Up-Retry):當(dāng)后端應(yīng)用健康檢查失敗,AX已經(jīng)把某個服務(wù)器標(biāo)記為DOWN狀態(tài)。此時,服務(wù)器恢復(fù)正常狀態(tài),Up-Retry是指AX需要嘗試健康檢查成功幾次才能把服務(wù)器真正標(biāo)記為UP狀態(tài)。
上面這四個參數(shù)是AX上健康檢查方法的全局參數(shù),可以在全局模式下修改,也可以在單獨(dú)的健康檢查方法中進(jìn)行定義。一般情況下,建議采用默認(rèn)配置,不要做任何修改。
全局模式下的修改命令如下:
health global interval 10 timeout 3 retry 2 up-retry 2
關(guān)閉AX上默認(rèn)的健康檢查方法
雖然AX上默認(rèn)的健康檢查方法簡化了配置,使用效果也不錯,但是,如果由于某種原因,我們需要關(guān)閉這些健康檢查方法,我們有兩種方法來達(dá)成這個要求:
1) 直接在服務(wù)器或端口下用 no health-check來關(guān)閉默認(rèn)的健康檢查方法。這種方法適用于關(guān)閉單獨(dú)的服務(wù)器上的健康檢查方法。具體方法參見下面的配置示例:
slb server rs-test 192.168.203.101
no health-check
port 80 tcp
port 8080 tcp
no health-check
!
2) 利用real server template 或real port template來關(guān)閉默認(rèn)的健康檢查方法。這種方法適用于關(guān)閉所有(或批量)的服務(wù)器上的默認(rèn)健康檢查方法。
slb template server default
no health-check
!
!
slb template port default
no health-check
!
默認(rèn)情況下,real server及其下面配置的port都會加載默認(rèn)的server template和port template,除非你在real server下引用了其他自定義的template。但是,如果server或port下還定義了其它的健康檢查方法,則server(或port)下的健康檢查方法優(yōu)先級要高于template中定義的健康檢查方法。
使用自定義健康檢查方法
在AX使用自定義的健康檢查方法需要兩個步驟。首先,需要先定義健康檢查方法,其次,在需要采用該健康檢查方法的服務(wù)器或端口下加載自定義的健康檢查方法。具體方法請參考下面的示例:
health monitor hc-http
method http url GET /check.html expect response-code 200,300-304
!
slb server rs-test 192.168.203.101
port 80 tcp
health-check hc-http
!
盡管越高級、越復(fù)雜的健康檢查對應(yīng)用健康狀態(tài)的感知越精確,但是,這些檢查方法對負(fù)載均衡資源及應(yīng)用系統(tǒng)的資源使用都帶來了一定的壓力。因此,在考慮修改AX上默認(rèn)的健康檢查方法時,一定要充分考慮這些健康檢查對服務(wù)器或負(fù)載均衡所產(chǎn)生的影響,在檢查精度與系統(tǒng)負(fù)荷之間選擇一個平衡點(diǎn)。
重慶中技互聯(lián)網(wǎng)信息咨詢有限公司 www.tmsmall666.cn
企業(yè)網(wǎng)站建設(shè)解決方案 營銷型網(wǎng)站建設(shè)解決方案 行業(yè)門戶網(wǎng)站建設(shè)解決方案 外貿(mào)網(wǎng)站解建設(shè)決方案 品牌形象網(wǎng)站建設(shè)解決方案 購物商城網(wǎng)站建設(shè)解決方案 政府網(wǎng)站建設(shè)解決方案 手機(jī)網(wǎng)站建設(shè)解決方案 教育培訓(xùn)網(wǎng)站建設(shè)解決方案 珠寶高端奢飾品網(wǎng)站建設(shè)解決方案 房地產(chǎn)、地產(chǎn)項(xiàng)目網(wǎng)站建設(shè)解決方案 集團(tuán)、上市企業(yè)網(wǎng)站建設(shè)解決方案 數(shù)碼、電子產(chǎn)品網(wǎng)站建設(shè)解決方案 美容、化妝品行業(yè)網(wǎng)站建設(shè)解決方案
10年專業(yè)互聯(lián)網(wǎng)服務(wù)經(jīng)驗(yàn) 重慶最專業(yè)網(wǎng)站團(tuán)隊(duì) 資深行業(yè)分析策劃 B2C營銷型網(wǎng)站建設(shè)領(lǐng)先者 最前沿視覺設(shè)計(jì)、研發(fā)能力 時刻最新技術(shù)領(lǐng)先研發(fā)能力 具有完備的項(xiàng)目管理 完善的售后服務(wù)體系 深厚的網(wǎng)絡(luò)運(yùn)營經(jīng)驗(yàn)
中技互聯(lián)一直秉承專業(yè)、誠信、服務(wù)、進(jìn)取的價值觀,堅(jiān)持優(yōu)秀的商業(yè)道德,以用戶最終價值為導(dǎo)向,向用戶提供優(yōu)質(zhì)產(chǎn)品和優(yōu)質(zhì)服務(wù),從而贏得了用戶的信賴。始終以不懈的努力、更高的目標(biāo)來要求自己。
主營業(yè)務(wù):網(wǎng)站建設(shè) | 重慶網(wǎng)站建設(shè) | 重慶網(wǎng)站設(shè)計(jì) | 重慶網(wǎng)站制作 | 重慶網(wǎng)頁設(shè)計(jì) | 重慶網(wǎng)站開發(fā)