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