日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

探析負(fù)載均衡器的實(shí)現(xiàn)原理

來源: 責(zé)編: 時(shí)間:2024-06-18 17:06:04 158觀看
導(dǎo)讀前言負(fù)載均衡器(Load Balancer,簡(jiǎn)稱 LB)是一種硬件或者軟件設(shè)備,它可以將客戶端訪問流量根據(jù)轉(zhuǎn)發(fā)策略分發(fā)到多個(gè)服務(wù)器或者設(shè)備上,以確保系統(tǒng)的負(fù)載均衡,通過負(fù)載均衡可以有效避免單點(diǎn)故障,提高系統(tǒng)的可靠性和穩(wěn)定性。LB是

前言

負(fù)載均衡器(Load Balancer,簡(jiǎn)稱 LB)是一種硬件或者軟件設(shè)備,它可以將客戶端訪問流量根據(jù)轉(zhuǎn)發(fā)策略分發(fā)到多個(gè)服務(wù)器或者設(shè)備上,以確保系統(tǒng)的負(fù)載均衡,通過負(fù)載均衡可以有效避免單點(diǎn)故障,提高系統(tǒng)的可靠性和穩(wěn)定性。LB是所有流量的入口,LB的高可用架構(gòu)以及可擴(kuò)展性對(duì)于業(yè)務(wù)的重要性不言而喻。本文全面剖析LB的架構(gòu)和底層實(shí)現(xiàn)原理,以點(diǎn)帶面,詳細(xì)介紹LB的構(gòu)成組件和實(shí)現(xiàn)技術(shù)、LB的后端網(wǎng)絡(luò)拓?fù)湟约癓B集群的高可用性。CaD28資訊網(wǎng)——每日最新資訊28at.com

LB的組成

圖1 LB的構(gòu)成組件圖1 LB的構(gòu)成組件CaD28資訊網(wǎng)——每日最新資訊28at.com

用戶每創(chuàng)建一個(gè)LB集群,都至少生產(chǎn)兩個(gè)負(fù)載均衡器節(jié)點(diǎn)(LB node),它的承載實(shí)體可以是虛擬機(jī)也可以是容器,容器具有輕量和高性能特性。LB的構(gòu)成包含三部分,分別如下:CaD28資訊網(wǎng)——每日最新資訊28at.com

1.負(fù)載均衡器

負(fù)載均衡器主要接收client的傳入流量,并按照負(fù)載均衡算法,將流量分發(fā)給LB node。CaD28資訊網(wǎng)——每日最新資訊28at.com

2.監(jiān)聽器

用戶可以向負(fù)載均衡器添加一個(gè)或者多個(gè)監(jiān)聽器,監(jiān)聽器主要用來配置協(xié)議和端口,根據(jù)檢查客戶端的流量連接請(qǐng)求,按照定義的轉(zhuǎn)發(fā)策略將請(qǐng)求的映射端口流量分發(fā)到后端真正承載業(yè)務(wù)的后端服務(wù)器和端口。CaD28資訊網(wǎng)——每日最新資訊28at.com

3.后端服務(wù)器

后端服務(wù)器就是業(yè)務(wù)的流量承載實(shí)體,可以是虛擬機(jī)、裸金屬和容器。監(jiān)聽器會(huì)對(duì)后端服務(wù)器進(jìn)行定期健康檢查,如果后端服務(wù)器有問題,將會(huì)從監(jiān)聽器中摘掉異常服務(wù)器,如果后端服務(wù)器恢復(fù)正常,監(jiān)聽器會(huì)自動(dòng)添加該服務(wù)器繼續(xù)為業(yè)務(wù)提供服務(wù)器。負(fù)載均衡器按照用戶設(shè)置的負(fù)載均衡算法(輪詢/最少鏈接/源地址),將流量分發(fā)到后端服務(wù)器。CaD28資訊網(wǎng)——每日最新資訊28at.com

負(fù)載均衡器高可用集群

圖2 LB集群圖2 LB集群CaD28資訊網(wǎng)——每日最新資訊28at.com

負(fù)載均衡器作為用戶的網(wǎng)絡(luò)服務(wù)入口,一旦發(fā)生故障將影響業(yè)務(wù)的整體可用性,所以負(fù)載均衡器集群的目的就是提供高可用的負(fù)載均衡器服務(wù)。負(fù)載均衡器集群中包含多個(gè)單獨(dú)工作的LB node,這些節(jié)點(diǎn)保持一致的負(fù)載均衡配置,并且具備相同的服務(wù)IP地址,提供統(tǒng)一的對(duì)外服務(wù)。 LB對(duì)外服務(wù)的ip地址稱之虛擬ip(一般稱vip),負(fù)載均衡器集群會(huì)自動(dòng)將vip映射到某個(gè)LB nodeIP地址。如圖2所示,每個(gè)LB集群的LB node包括Keepalive、LVS和Haproxy服務(wù),其中LB集群會(huì)選擇兩個(gè)LB node 組成一個(gè)Keepalive集群,一個(gè)作為master,一個(gè)作為slave,其中master 節(jié)點(diǎn)為vip所在節(jié)點(diǎn),是client訪問業(yè)務(wù)的入口ip。Keepalive集群是一個(gè)高可用集群,它通過VRRP協(xié)議來防止單點(diǎn)故障。如果master節(jié)點(diǎn)有問題,slave節(jié)點(diǎn)將轉(zhuǎn)為master節(jié)點(diǎn),對(duì)外提供服務(wù)。lb-node0作為Keepalive集群的master節(jié)點(diǎn),上面的LVS服務(wù)通過默認(rèn)的加權(quán)輪訓(xùn)算法,將入口流量分發(fā)到LB集群的3個(gè)node節(jié)點(diǎn),而作為Keepalive  slave的lb-node1上的LVS服務(wù)會(huì)將流量按照加權(quán)輪訓(xùn)算法分發(fā)到 lb-node1和lb-node2上。HAProxy作為監(jiān)聽器的載體,在其配置中為監(jiān)聽器添加后端服務(wù)器。CaD28資訊網(wǎng)——每日最新資訊28at.com

LB后端網(wǎng)絡(luò)拓?fù)?/h3>

圖1 LB的構(gòu)成組件圖1 LB的構(gòu)成組件CaD28資訊網(wǎng)——每日最新資訊28at.com

用戶每創(chuàng)建一個(gè)LB集群,都至少生產(chǎn)兩個(gè)負(fù)載均衡器節(jié)點(diǎn)(LB node),它的承載實(shí)體可以是虛擬機(jī)也可以是容器,容器具有輕量和高性能特性。LB的構(gòu)成包含三部分,分別如下:CaD28資訊網(wǎng)——每日最新資訊28at.com

1.負(fù)載均衡器

負(fù)載均衡器主要接收client的傳入流量,并按照負(fù)載均衡算法,將流量分發(fā)給LB node。CaD28資訊網(wǎng)——每日最新資訊28at.com

2.監(jiān)聽器

用戶可以向負(fù)載均衡器添加一個(gè)或者多個(gè)監(jiān)聽器,監(jiān)聽器主要用來配置協(xié)議和端口,根據(jù)檢查客戶端的流量連接請(qǐng)求,按照定義的轉(zhuǎn)發(fā)策略將請(qǐng)求的映射端口流量分發(fā)到后端真正承載業(yè)務(wù)的后端服務(wù)器和端口。CaD28資訊網(wǎng)——每日最新資訊28at.com

3.后端服務(wù)器

后端服務(wù)器就是業(yè)務(wù)的流量承載實(shí)體,可以是虛擬機(jī)、裸金屬和容器。監(jiān)聽器會(huì)對(duì)后端服務(wù)器進(jìn)行定期健康檢查,如果后端服務(wù)器有問題,將會(huì)從監(jiān)聽器中摘掉異常服務(wù)器,如果后端服務(wù)器恢復(fù)正常,監(jiān)聽器會(huì)自動(dòng)添加該服務(wù)器繼續(xù)為業(yè)務(wù)提供服務(wù)器。負(fù)載均衡器按照用戶設(shè)置的負(fù)載均衡算法(輪詢/最少鏈接/源地址),將流量分發(fā)到后端服務(wù)器。CaD28資訊網(wǎng)——每日最新資訊28at.com

圖3 LB后端網(wǎng)絡(luò)拓?fù)? title=圖3 LB后端網(wǎng)絡(luò)拓?fù)?/span>CaD28資訊網(wǎng)——每日最新資訊28at.com

每個(gè)LB node包括兩個(gè)網(wǎng)卡,分別為eth0和eth1。其中eth0為私有網(wǎng)絡(luò)地址,用于和后端服務(wù)通信,eth1為基礎(chǔ)網(wǎng)絡(luò)地址,用于接收client數(shù)據(jù)。Haproxy作為eth0和eth1數(shù)據(jù)通信的橋梁。根據(jù)圖3所示,LB后端網(wǎng)絡(luò)拓?fù)湓敿?xì)介紹了客戶端流量如何通過負(fù)載均衡集群,轉(zhuǎn)發(fā)流量到后端服務(wù)器,然后后端服務(wù)器將響應(yīng)數(shù)據(jù)如何返回至client。CaD28資訊網(wǎng)——每日最新資訊28at.com

首先client 通過訪問vip(1.2.3.252)到lb-node0,此時(shí)流量通過eth1網(wǎng)卡進(jìn)入iptables規(guī)則,通過 PREROUTING 表的LUSTER_DIVERT 鏈上的規(guī)則,打上 fwmark。fwmark 的值是根據(jù)監(jiān)聽器的端口來分配,具體以 iptables 規(guī)則中的 fwmark 值為準(zhǔn),一般從 0x2710 (即10000) 開始分配,和keepalive中virtual_server_group中的值一致。CaD28資訊網(wǎng)——每日最新資訊28at.com

然后流量到達(dá)lvs后,lvs根據(jù)fwmark配置,按照l(shuí)vs配置算法,選擇一個(gè)LB node(1.2.3.9)接受流量,如圖3所示lvs對(duì)應(yīng)的配置。此時(shí)haproxy 已經(jīng)開啟端口監(jiān)聽,流量進(jìn)入haproxy 的應(yīng)用程序,按照RR算法,選擇一個(gè)合適的后端服務(wù)器進(jìn)行流量轉(zhuǎn)發(fā)。CaD28資訊網(wǎng)——每日最新資訊28at.com

此時(shí),通過查看LB node所在物理機(jī)hyper-1的arp信息和宿主機(jī)路由,流量到達(dá)br_vg_out網(wǎng)橋,按照bridge fdb流表配置,通過vxlan隧道,將請(qǐng)求數(shù)據(jù)發(fā)送至后端服務(wù)(1.2.3.6)所在的物理機(jī)hyper-3。hyper-3的內(nèi)核對(duì)vxlan解包后,數(shù)據(jù)流入到sxxx網(wǎng)橋,然后根據(jù)bridge fdb信息,將數(shù)據(jù)交付給最終的后端服務(wù)器。此時(shí)需要注意是在hyper-1上后端服務(wù)1.2.3.6的mac地址(圖中標(biāo)紅色)并不是其真正的mac地址,而是其所在物理服務(wù)器上網(wǎng)橋的一個(gè)網(wǎng)口pair的mac地址,它是封包流量的統(tǒng)一入口,最后會(huì)將流量轉(zhuǎn)發(fā)到最終后端服務(wù)。 CaD28資訊網(wǎng)——每日最新資訊28at.com

在hyper-3上的后端服務(wù)處理完client的請(qǐng)求后,響應(yīng)數(shù)據(jù)是如何返回至client的呢?從LB-node0過來的數(shù)據(jù)包,進(jìn)入hyper-3的iptables規(guī)則后,會(huì)對(duì)其打上fwmark,響應(yīng)數(shù)據(jù)通過查找hyper-3上的策略路由的fwmark值進(jìn)行路由匹配,然后將數(shù)據(jù)發(fā)送至hyper-3的br_vg_out網(wǎng)橋,通過vxlan隧道發(fā)送至LB-node0,此時(shí)數(shù)據(jù)不再經(jīng)過lvs服務(wù)(lvs采用DR工作模式),而是直接將響應(yīng)數(shù)據(jù)發(fā)送至client。CaD28資訊網(wǎng)——每日最新資訊28at.com

LB集群健康檢查


CaD28資訊網(wǎng)——每日最新資訊28at.com

圖4 LB node健康檢查CaD28資訊網(wǎng)——每日最新資訊28at.com


CaD28資訊網(wǎng)——每日最新資訊28at.com

1.LB node健康檢查

每個(gè)計(jì)算節(jié)點(diǎn)上都有l(wèi)xc-monitor守護(hù)進(jìn)程,它監(jiān)控著物理機(jī)上以LXC形式運(yùn)行的LB node,當(dāng)LB node 由于某些原因出現(xiàn)stop情況后,lxc-monitor會(huì)接收到lxc對(duì)應(yīng)的停止消息,并將該消息發(fā)送至lxc-event-handler,lxc-event-handler發(fā)送release指令給compute_server, compute_server 服務(wù)將會(huì)重建該LB node。同理,當(dāng)整個(gè)hyper意外宕機(jī)后,其pair-hyper探測(cè)到hyper網(wǎng)絡(luò)中斷后(hyper和pair-hyper 相互探活彼此),將會(huì)觸發(fā)重建hyper上面所有的LB node,保障LB node正常工作。CaD28資訊網(wǎng)——每日最新資訊28at.com

圖5 Listener健康檢查CaD28資訊網(wǎng)——每日最新資訊28at.com

2.Listener健康檢查

Keepalive 的master節(jié)點(diǎn)配置misc_check,會(huì)對(duì)LB node里面 haproxy 啟動(dòng)的監(jiān)聽器的監(jiān)聽端口進(jìn)行健康檢查,探測(cè)流量走VBC網(wǎng)絡(luò),即eth1網(wǎng)卡。通過使用nc -vz命令定期對(duì)ip和端口進(jìn)行探測(cè),如果不通,則將它從lvs 后端摘掉,這樣業(yè)務(wù)流量就不會(huì)轉(zhuǎn)發(fā)到有問題監(jiān)聽器上了。CaD28資訊網(wǎng)——每日最新資訊28at.com

3.Haproxy對(duì)后端服務(wù)檢查

開啟健康檢測(cè)后,負(fù)載均衡器會(huì)根據(jù)對(duì)應(yīng)配置定期檢查后端服務(wù)的運(yùn)行狀態(tài),當(dāng)某個(gè)后端服務(wù)出現(xiàn)異常時(shí),會(huì)自動(dòng)隔離該后端服務(wù),并將請(qǐng)求轉(zhuǎn)發(fā)給其他健康的后端服務(wù),實(shí)現(xiàn)高可用性。CaD28資訊網(wǎng)——每日最新資訊28at.com

  • 健康檢查方式:
  • TCP:通過向后端服務(wù)器發(fā)送 TCP 包來檢測(cè)后端服務(wù)。
  • HTTP:通過向后端服務(wù)器發(fā)送 HTTP 請(qǐng)求來檢測(cè)后端服務(wù),你可以指定需要檢測(cè)的 URI。負(fù)載均衡器會(huì)通過 HTTP 返回值是否為200來判斷服務(wù)是否正常。
  • ICMP:通過向后端服務(wù)器發(fā)送 ICMP Echo Request 請(qǐng)求(即 ping)來檢查后端網(wǎng)絡(luò)是否可達(dá)。
  • UDP:UDP 方式會(huì) 結(jié)合 ICMP Echo Request 和 UDP port probe 兩種方式來檢查。
  • 健康檢查選項(xiàng):
  • 檢查間隔:連續(xù)兩次健康檢查之間的時(shí)間間隔,單位為秒,范圍為 2-60s。
  • 超時(shí)時(shí)間:等待健康檢查請(qǐng)求返回的超時(shí)時(shí)間,檢查超時(shí)將會(huì)被判定為一次檢查失敗,單位為秒,范圍為 5 - 300s。
  • 不健康閾值:多少次連續(xù)檢查失敗之后,可以將后端服務(wù)屏蔽,范圍為 2-10次。
  • 健康閾值:多少次連續(xù)檢查成功之后,可以將后端服務(wù)恢復(fù),范圍為 2-10次。

結(jié)束語(yǔ)

本文介紹了LB的組成原理、高可用架構(gòu)、網(wǎng)絡(luò)流量模型分析和健康檢查機(jī)制。只有全面深入了解負(fù)載均衡器的工作原理,才能快速定位業(yè)務(wù)在LB碰到的各種問題。LB可以為用戶提供強(qiáng)大的功能和靈活配置,便于用戶擴(kuò)展和管理應(yīng)用程序的基礎(chǔ)架構(gòu),并且提高了服務(wù)的可用性和穩(wěn)定性,為系統(tǒng)的構(gòu)建和性能延伸提供了強(qiáng)有力的支持。                                                          CaD28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-94590-0.html探析負(fù)載均衡器的實(shí)現(xiàn)原理

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Kafka如何保證消息的不丟失與不重復(fù)

下一篇: Rust 在許多方面都優(yōu)于 Go,但為什么沒有 Go 流行?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 對(duì)標(biāo)蘋果的靈動(dòng)島 華為帶來實(shí)況窗功能

    繼蘋果的靈動(dòng)島之后,華為也在今天正式推出了“實(shí)況窗”功能。據(jù)今天鴻蒙OS 4.0的現(xiàn)場(chǎng)演示顯示,華為的實(shí)況窗可以更高效的展現(xiàn)出實(shí)時(shí)通知,比如鎖屏上就能看到外賣、打車、銀行
  • 石頭智能洗地機(jī)A10 Plus體驗(yàn):雙向自清潔治好了我的懶癌

    一、前言和介紹專為家庭請(qǐng)假懶人而生的石頭科技在近日又帶來了自己的全新旗艦新品,石頭智能洗地機(jī)A10 Plus。從這個(gè)產(chǎn)品名上就不難看出,這次石頭推出的并不是常見的掃地機(jī)器
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現(xiàn)已正式出爐,冠軍是來自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從“最美JK”起到“最美女星&r
  • Flowable工作流引擎的科普與實(shí)踐

    一.引言當(dāng)我們?cè)谌粘9ぷ骱蜆I(yè)務(wù)中需要進(jìn)行各種審批流程時(shí),可能會(huì)面臨一系列技術(shù)和業(yè)務(wù)上的挑戰(zhàn)。手動(dòng)處理這些審批流程可能會(huì)導(dǎo)致開發(fā)成本的增加以及業(yè)務(wù)復(fù)雜度的上升。在這
  • JavaScript學(xué)習(xí) -AES加密算法

    引言在當(dāng)今數(shù)字化時(shí)代,前端應(yīng)用程序扮演著重要角色,用戶的敏感數(shù)據(jù)經(jīng)常在前端進(jìn)行加密和解密操作。然而,這樣的操作在網(wǎng)絡(luò)傳輸和存儲(chǔ)中可能會(huì)受到惡意攻擊的威脅。為了確保數(shù)據(jù)
  • 10天營(yíng)收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財(cái)經(jīng)作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國(guó)游戲史上最黑暗的一天,有粉絲因?yàn)樗髂嵩赑S平臺(tái)上線《原神》,怒而
  • 騰訊VS網(wǎng)易,最卷游戲暑期檔,誰(shuí)能笑到最后?

    作者:無銹缽來源:財(cái)經(jīng)無忌7月16日晚,上海1862時(shí)尚藝術(shù)中心。伴隨著幻象的精準(zhǔn)命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰(zhàn)隊(duì)以絕對(duì)的優(yōu)勢(shì)戰(zhàn)勝了BLG戰(zhàn)隊(duì),拿下了總決
  • 三星推出Galaxy Tab S9系列平板電腦以及Galaxy Watch6系列智能手表

    2023年7月26日,三星電子正式發(fā)布了Galaxy Z Flip5與Galaxy Z Fold5。除此之外,Galaxy Tab S9系列平板電腦以及三星Galaxy Watch6系列智能手表也同期
  • iQOO Neo8系列或定檔5月23日:首發(fā)天璣9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列機(jī)型,不僅搭載了天璣9000+,而且是同價(jià)位唯一一款天璣9000+直屏旗艦,一經(jīng)上市便受到了用戶的廣泛關(guān)注。在時(shí)隔半年后,
Top 主站蜘蛛池模板: 奉化市| 黎平县| 三河市| 南乐县| 枣阳市| 湾仔区| 嘉峪关市| 东方市| 西华县| 东乌珠穆沁旗| 曲周县| 凤凰县| 涞水县| 黄冈市| 阿拉善右旗| 弥勒县| 四平市| 潍坊市| 商河县| 资溪县| 营口市| 邳州市| 常熟市| 寿阳县| 乃东县| 禄丰县| 廉江市| 建阳市| 泰顺县| 西乌| 清涧县| 旬邑县| 安阳县| 枣强县| 福贡县| 景东| 郁南县| 墨竹工卡县| 大埔县| 花莲市| 莒南县|