集群擴(kuò)展之后将饺,服務(wù)請(qǐng)求如何從服務(wù)器列表中選擇合適的一臺(tái)呢? 依賴負(fù)載均衡策略
負(fù)載均衡指的是如何將網(wǎng)絡(luò)請(qǐng)求派發(fā)到集群中的一個(gè)或多個(gè)節(jié)點(diǎn)上處理痛黎,常見的負(fù)載均衡有 硬件負(fù)載均衡予弧,軟件負(fù)載均衡
- 硬件負(fù)載均衡:通過專門的硬件來實(shí)現(xiàn)負(fù)載均衡,比如常見的F5設(shè)備
- 軟件負(fù)載均衡:通過負(fù)載均衡軟件實(shí)現(xiàn)湖饱,比如常見的 Nginx
負(fù)載均衡的流程
負(fù)載均衡服務(wù)器通過心跳機(jī)制來確認(rèn)服務(wù)可用性掖蛤,在網(wǎng)絡(luò)請(qǐng)求達(dá)到后,F(xiàn)5 或者 Nginx 等負(fù)載均衡設(shè)備按照不同的策略井厌,進(jìn)行服務(wù)器的路由蚓庭。
常見的復(fù)雜均衡策略
1、輪詢策略:順序地從服務(wù)器列表中選擇一個(gè)節(jié)點(diǎn)仅仆,請(qǐng)求會(huì)均勻地落在各個(gè)服務(wù)器上器赞。
2、加權(quán)輪詢:對(duì)輪詢策略的優(yōu)化墓拜,給每個(gè)節(jié)點(diǎn)添加不同的權(quán)重港柜。
3、隨機(jī)策略:從列表中隨機(jī)的取一個(gè)。
4夏醉、最小響應(yīng)時(shí)間:在進(jìn)行路由時(shí)爽锥,會(huì)優(yōu)先發(fā)送給響應(yīng)時(shí)間最小的節(jié)點(diǎn)。
5畔柔、最小并發(fā)數(shù)策略:記錄當(dāng)前時(shí)刻每個(gè)節(jié)點(diǎn)正在處理的事務(wù)數(shù)氯夷,在路由時(shí)選擇并發(fā)最小的節(jié)點(diǎn)。
負(fù)載均衡如何實(shí)現(xiàn)
- 服務(wù)端負(fù)載均衡:請(qǐng)求先發(fā)送到負(fù)載均衡服務(wù)器靶擦,然后通過負(fù)載均衡算法腮考,在眾多可用的服務(wù)器之中選擇一個(gè)來處理請(qǐng)求。
- 客戶端負(fù)載均衡:客戶端自己維護(hù)服務(wù)器地址列表奢啥,自己選擇請(qǐng)求的地址秸仙,通過負(fù)載均衡算法將請(qǐng)求發(fā)送至該服務(wù)器。
服務(wù)端負(fù)載均衡和客戶端負(fù)載均衡如何實(shí)現(xiàn)呢桩盲?
1寂纪、服務(wù)端負(fù)載均衡常用的組件是 Spring Cloud Eureka
2、客戶端負(fù)載均衡常用的組件是 Spring Cloud Ribbon
在 Spring Cloud 中赌结,配置 @LoadBalanced 注解捞蛋,客戶端發(fā)起請(qǐng)求的時(shí)候會(huì)選擇一個(gè)服務(wù)端,向該服務(wù)端發(fā)起請(qǐng)求柬姚,實(shí)現(xiàn)負(fù)載均衡拟杉。
總結(jié):
本文介紹了
- 負(fù)載均衡的應(yīng)用場景,常見的負(fù)載均衡策略
- 服務(wù)端和客戶端負(fù)載均衡實(shí)現(xiàn)組件