1.通過NAT實(shí)現(xiàn)負(fù)載均衡
運(yùn)作過程
- 客戶端會(huì)向一個(gè)ip地址發(fā)出請(qǐng)求解总,這個(gè)ip地址是一個(gè)
VIP
(虛擬IP)帜慢,這也是調(diào)度器向外公布的一個(gè)地址井佑。 - 請(qǐng)求達(dá)到調(diào)度器草巡,調(diào)度器會(huì)根據(jù)負(fù)載均衡算法(詳情請(qǐng)見8種負(fù)載均衡算法)從
RealServer
列表中選取一個(gè)負(fù)載不高的服務(wù)器守呜,然后把請(qǐng)求報(bào)文的目標(biāo)地址,也就是VIP
和端口通過iptables
進(jìn)行NAT
轉(zhuǎn)換成選中的服務(wù)器的真實(shí)ip地址山憨。最后查乒,調(diào)度器會(huì)把其連接保存在一個(gè)hash表中,只要這個(gè)連接下次再發(fā)請(qǐng)求報(bào)文過來就會(huì)把其分發(fā)到上次選定的服務(wù)器中郁竟。 -
RealServer
收到報(bào)文之后玛迄,會(huì)把響應(yīng)返回給調(diào)度器。 - 調(diào)度器收到報(bào)文之后棚亩,會(huì)把源地址和源端口改為虛擬ip和端口蓖议,最后再返回給客戶端藻肄。
特點(diǎn)
1.RealServer
和調(diào)度器必須位于一個(gè)ip網(wǎng)絡(luò)之中。
2.調(diào)度器位于RealServer
和客戶端之間拒担,處理進(jìn)出的通信。
3.RIP
通常是內(nèi)部地址攻询,僅用于集群之間通信从撼。
4.RealServer
的網(wǎng)關(guān)必須指向調(diào)度器。
5.支持端口映射钧栖,RealServer
沒必要跟調(diào)度器一個(gè)端口低零。
限制
響應(yīng)報(bào)文一般比較大,每一次都需要NAT
轉(zhuǎn)換的話拯杠,大流量的時(shí)候掏婶,會(huì)導(dǎo)致調(diào)度器成為一個(gè)瓶頸。
配圖
2.通過直接路由實(shí)現(xiàn)負(fù)載均衡
描述
由于網(wǎng)絡(luò)請(qǐng)求有一個(gè)特點(diǎn)潭陪,就是響應(yīng)報(bào)文往往都是比請(qǐng)求報(bào)文大很多的雄妥,這就會(huì)造成上面的nat每次轉(zhuǎn)發(fā)收到機(jī)器負(fù)載的影響,會(huì)成為這個(gè)請(qǐng)求的一個(gè)瓶頸依溯。因此VS/DR
這個(gè)方案可以通過直接路由的方式老厌,只轉(zhuǎn)發(fā)請(qǐng)求,而相應(yīng)則由RealServer
去直接響應(yīng)給客戶端黎炉,這樣可以極高提高吞吐量枝秤。
運(yùn)作過程
- 客戶端請(qǐng)求一個(gè)
VIP
,這個(gè)ip地址就是調(diào)度器對(duì)外公布的地址慷嗜。 - 請(qǐng)求到達(dá)調(diào)度器之后淀弹,調(diào)度器根據(jù)負(fù)載算法去調(diào)度請(qǐng)求,分發(fā)給特定的
RealServer
庆械,調(diào)度器不會(huì)修改ip和端口薇溃,只會(huì)mac地址改為把選出的RealServer
的mac地址,RealServer
將會(huì)收到對(duì)應(yīng)的報(bào)文干奢。 -
RealServer
收到報(bào)文之后痊焊,發(fā)現(xiàn)報(bào)文的目標(biāo)地址VIP
,處理結(jié)束之后忿峻,會(huì)通過路由表將響應(yīng)返回給客戶端薄啥。
特點(diǎn)
- 集群節(jié)點(diǎn),
RealServer
和調(diào)度器要在同一個(gè)物理網(wǎng)絡(luò)之中逛尚。 -
RIP
通常是私有網(wǎng)絡(luò)垄惧,當(dāng)然也可以是公開網(wǎng)絡(luò),方便監(jiān)控和管理绰寞。 - 調(diào)度器只負(fù)責(zé)調(diào)度請(qǐng)求到逊,響應(yīng)會(huì)由服務(wù)器直接對(duì)客戶端進(jìn)行響應(yīng)铣口。
-
RealServer
不能指向調(diào)度器的網(wǎng)關(guān)。 - 不支持端口映射觉壶。
3. VS/TUN 實(shí)現(xiàn)虛擬服務(wù)器
描述
由于VS/DR
限制RealServer
和調(diào)度器在同一個(gè)物理網(wǎng)絡(luò)脑题,因此無法分散在各地,VS/TUN
就能解決這個(gè)問題铜靶。
運(yùn)作過程
1.客戶端通過VIP
發(fā)送請(qǐng)求叔遂,通過一個(gè)ip隧道,將一個(gè)ip報(bào)文封裝到另一個(gè)ip報(bào)文争剿,這樣可以讓目標(biāo)為一個(gè)ip的地址數(shù)據(jù)轉(zhuǎn)發(fā)到另一個(gè)ip地址已艰。
2.調(diào)度器根據(jù)負(fù)載均衡算法去選擇一臺(tái)RealServer
,再把封裝后的ip報(bào)文發(fā)送過去蚕苇。
3.RealServer
獲取到報(bào)文之后解封報(bào)文哩掺,獲取到原來目標(biāo)為VIP
的報(bào)文,服務(wù)器發(fā)現(xiàn)這個(gè)VIP
是位于本地的IP隧道中就會(huì)處理這個(gè)這個(gè)請(qǐng)求涩笤,并通過路由表去把響應(yīng)報(bào)文直接回復(fù)給客戶端嚼吞。
特點(diǎn)
-
RealServer
和調(diào)度器必須可以公網(wǎng)訪問。 -
RIP
必須是公網(wǎng)地址蹬碧。 - 調(diào)度器只分配和轉(zhuǎn)發(fā)請(qǐng)求給
RealServer
誊薄,響應(yīng)報(bào)文則由RealSever
直接響應(yīng)給客戶端。 -
RealServer
的網(wǎng)關(guān)不能指向調(diào)度器锰茉。 - 不支持端口映射呢蔫。