![]() |
新聞中心
當(dāng)前位置:網(wǎng)站首頁(yè) > 新聞中心
使用負(fù)載均衡的常見(jiàn)誤區(qū)及建議
1、優(yōu)先使用無(wú)狀態(tài)服務(wù)
有狀態(tài)服務(wù)和無(wú)狀態(tài)服務(wù),原本是各有優(yōu)勢(shì),并沒(méi)有明顯的優(yōu)劣之分,但是在大集群、服務(wù)化的場(chǎng)景下,無(wú)狀態(tài)服務(wù)則更有優(yōu)勢(shì)。
因?yàn)橛袪顟B(tài)服務(wù)在服務(wù)架構(gòu)較為簡(jiǎn)單時(shí)雖然有易開(kāi)發(fā),高并發(fā)等優(yōu)勢(shì),但隨著業(yè)務(wù)規(guī)模的擴(kuò)大,也會(huì)造成異常恢復(fù)困難、難以并行擴(kuò)展等問(wèn)題。而在這種場(chǎng)景下,無(wú)狀態(tài)服務(wù)在服務(wù)管理、并行擴(kuò)展方面有著先天的優(yōu)勢(shì)。
一般來(lái)講,使用負(fù)載均衡,大多是服務(wù)規(guī)模較大,業(yè)務(wù)負(fù)載的場(chǎng)景,因此更推薦使用無(wú)狀態(tài)化的服務(wù)。
2、忽視健康檢查配置!
健康檢查是負(fù)載均衡服務(wù)的重要功能之一,也是服務(wù)判斷后端節(jié)點(diǎn)是否存活的重要標(biāo)準(zhǔn)(很多場(chǎng)景下甚至是唯一標(biāo)準(zhǔn))。不僅僅會(huì)影響到顯示的狀態(tài),還會(huì)影響到用戶(hù)的服務(wù)質(zhì)量,甚至造成整個(gè)服務(wù)異常。下面舉兩個(gè)例子:
誤區(qū)1:健康檢查判斷異常參數(shù)過(guò)于敏感,在系統(tǒng)壓力較大時(shí)錯(cuò)誤判斷而移除正常的節(jié)點(diǎn),導(dǎo)致剩下節(jié)點(diǎn)壓力增大,從而繼續(xù)發(fā)出移除操作,直到全部節(jié)點(diǎn)移除,系統(tǒng)雪崩。
應(yīng)對(duì)之策:在線(xiàn)上壓力較大,偶現(xiàn)超時(shí)的場(chǎng)景下,建議采用快速拉起,緩慢宕機(jī)的策略。通過(guò)適當(dāng)拉長(zhǎng)節(jié)點(diǎn)異常宕機(jī)時(shí)周期,減少錯(cuò)誤判斷的概率,而在服務(wù)正常時(shí)快速接入服務(wù),緩解負(fù)載。
誤區(qū)2:健康檢查宕機(jī)參數(shù)設(shè)置時(shí)間過(guò)長(zhǎng),結(jié)果在節(jié)點(diǎn)宕機(jī)時(shí)無(wú)法快速拉起,在異常時(shí)影響到了用戶(hù)訪(fǎng)問(wèn)。
應(yīng)對(duì)之策:在線(xiàn)上壓力較小、健康檢查接口響應(yīng)正常的情況下,可以考慮縮短宕機(jī)時(shí)間,這樣在異常時(shí)可以快速移除異常節(jié)點(diǎn),減少對(duì)用戶(hù)的影響。
因此,健康檢查參數(shù)并沒(méi)有一個(gè)固定的原則,關(guān)鍵還是要看業(yè)務(wù)本身的特點(diǎn),以及對(duì)業(yè)務(wù)來(lái)說(shuō),最重要的是什么:是業(yè)務(wù)穩(wěn)定,還是用戶(hù)體驗(yàn)?
3、接入負(fù)載均衡無(wú)法保障高可用
有一個(gè)常見(jiàn)誤區(qū)就是認(rèn)為服務(wù)接入負(fù)載均衡就算高可用了。而事實(shí)上實(shí)際服務(wù)的高可用性是需要通盤(pán)考慮的事情,比如全鏈路移除單點(diǎn),服務(wù)本身對(duì)于異常的處理等。
因此說(shuō),接入負(fù)載均衡僅僅是保證了接入點(diǎn)的高可用(如果掛單點(diǎn)那接入都不是高可用的),真正要實(shí)現(xiàn)高可用還需要全局保證,負(fù)載均衡只是構(gòu)筑服務(wù)高可用的一個(gè)工具,而不是全部。
4、接入負(fù)載均衡后并不會(huì)實(shí)現(xiàn)業(yè)務(wù)加速
負(fù)載均衡是一個(gè)高性能的轉(zhuǎn)發(fā)服務(wù),但是對(duì)于單次請(qǐng)求來(lái)說(shuō),無(wú)法做到性能加速。
如果你本來(lái)的請(qǐng)求要 100ms返回,使用負(fù)載均衡之后也不會(huì)把你的請(qǐng)求縮短到 10ms。
而且從理論上說(shuō),無(wú)論任何形式的負(fù)載均衡,都只會(huì)增長(zhǎng)調(diào)用鏈而不是縮短(一些軟負(fù)載均衡,如 DNS,Service的 Iptables不會(huì)增加調(diào)用鏈本身,但是也會(huì)加入額外操作)。因此,對(duì)于單個(gè)請(qǐng)求,結(jié)果往往是變慢而不是加速(一般負(fù)載均衡服務(wù)增加的成本是微乎其微的 ms以?xún)?nèi),應(yīng)用完全感知不到)。
負(fù)載均衡對(duì)性能的提升,是通過(guò)分擔(dān)負(fù)載帶來(lái)的并行擴(kuò)展能力從而提升服務(wù)的穩(wěn)定性。而由于業(yè)務(wù)并行擴(kuò)展,造成單臺(tái)壓力變小,從而提升服務(wù)的整體性能。
另外,由于負(fù)載均衡服務(wù)往往有更可靠的接入端(BGP網(wǎng)絡(luò)),更高效的轉(zhuǎn)發(fā)設(shè)施(專(zhuān)用轉(zhuǎn)發(fā)設(shè)備和鏈路),更好的優(yōu)化,一般性能還是遠(yuǎn)遠(yuǎn)優(yōu)于自己搭建的轉(zhuǎn)發(fā)服務(wù)。因此很多場(chǎng)景是會(huì)有更好的性能表現(xiàn)。
|