架構(gòu)設(shè)計之:LVS 調(diào)度策略

LVS調(diào)度策略

● 無腦輪詢
● 加權(quán)無腦輪詢
● 最少鏈接
● 加權(quán)最少鏈接
● IP_Hash
● IP_Hash_Group

概要介紹

無腦輪詢
特點:是許多LVS設(shè)備、Nginx設(shè)備、Dubbo RPC負載均衡的調(diào)度設(shè)備的默認策略。
方式:假設(shè)有N臺服務(wù)器,當(dāng)有請求時,會按照1,2......N,1,2......進行順序輪詢。

加權(quán)無腦輪詢
特點:讓性能更好的設(shè)備承擔(dān)更多的請求處理。
方式:假設(shè)有3臺服務(wù)器,設(shè)置權(quán)重221,則第1,2個請求先由第一臺承擔(dān),第3,4個請求由第二臺,第5個由第三臺,以此循環(huán)。

最少鏈接
特點:挑選負載最輕的一臺設(shè)備處理請求。
方式:假設(shè)LVS設(shè)備收到包后,挑選一臺服務(wù)發(fā)送過去。在未收到返回時,該LVS不動,保持連接。(當(dāng)后端服務(wù)器壓力越大時,處理速度越慢。)LVS就會感知到后端服務(wù)器的連接越來越多,認定這臺服務(wù)器負載太大,就會選取跟他最少連接的另一個后端服務(wù)器去轉(zhuǎn)發(fā)對應(yīng)的請求報文。

加權(quán)最少鏈接
特點:在 最少鏈接 基礎(chǔ)上加上權(quán)重。

IP_Hash
特點:保證元客戶端永遠訪問到固定的一個后端Real Server。一般用來解決分布式登錄態(tài)的問題,始終保持某個客戶端在某臺服務(wù)器上有效。
方式:將元客戶端IP地址做Hash Code,出來的整數(shù)值對所有后端服務(wù)器數(shù)量取余,取余的數(shù)字作為發(fā)送到后端服務(wù)器某個具體索引地址上的后端服務(wù)器地址。

參照

分布式登錄態(tài)問題:
分布式session如果不考慮中間緩存Redis策略,仍以Tomcat的session管理機制,則他其實存在本地文件里。若采用輪詢方式,用戶會發(fā)現(xiàn)剛剛登錄過,再請求時又要登錄。即某臺后端服務(wù)器A中已產(chǎn)生了session并保存下來,但下次請求時輪詢到服務(wù)器B,因為B沒有該用戶的session,就必須重新登錄。

注意事項
當(dāng)需要移除一臺服務(wù)器時,不能直接刪除這個配置項,而是需要在這臺服務(wù)器配置后面加上關(guān)鍵字down,表示不可用。因為如果直接移除配置項,會導(dǎo)致hash算法發(fā)生更改,后續(xù)所有的請求都會發(fā)生混亂。

IP_Hash_Group
特點:保證元客戶端永遠訪問到固定的一組后端Real Server。

IP_Hash衍生:URL_Hash
特點:只要訪問同樣業(yè)務(wù)ID(如商品ID)的URL請求,就會被強制路由到某臺固定的后臺服務(wù)器設(shè)備中。也可以做本地緩存優(yōu)化,將熱點商品數(shù)據(jù)放到服務(wù)器的本地緩存中,讓所有訪問該熱點商品的請求都加到這臺服務(wù)器,命中緩存,提升Redis的利用效率。
如果請求過于集中,后端服務(wù)器可能承受不了,這時就使用 URL_Hash_Group 解決。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容