linux負載均衡雜談

2022-02-03 14:08:16 字數 1303 閱讀 4508

假如架構中的主機擁有全量資料集,即使其中一台掛了,也不會導致離線,高可用(負載均衡集群)

假如架構中的各主機只擁有sharing,那我們謂之 分布式集群

硬體ctrix

f5-big-ip(一台動輒20w,40w,80w一買就是兩台)

a10 a10

array redware

軟體: httpd  nginx varnishi快取**伺服器 lvs haproxy ats(apache traffic server基於c)

perlbal web負載均衡程式(i/o前半段非同步)事件驅動

基於工作層次劃分:

傳輸層:lvs(不用監聽套接字,400-500萬個併發連線,但能達到百萬級併發的站點有幾個,不過除了負載均衡以外,沒有其他更多功能了)、 haproxy(mode tcp這一模式可以模擬tcp層排程,支援應用層協議,tcp方面都工作在核心,可能承載3萬左右併發/每秒,一天是86400秒,假如乙個頁面有40個鏈結, 能響應的pv就達到千萬級別了,更別提上了cdn以後,很多請求實際輪不到後端來處理),lvs還是個入門級的負載均衡器,用不到,但幾乎是企業必談話題

應用層:haproxy,nginx,ats,perlbal(套接字工作程式,監聽80埠)

假定這樣乙個使用場景,乙個lvs負責n個mysql伺服器的負載均衡排程(請求3306埠)

lvs(linux virtual server)工作在傳輸層,任何請求在核心協議棧中必須理解 3306應該怎麼處理,正常流程 netfilter-prelocating blah blah(anyway本來應該找註冊了監聽套接字的3306埠的服務,但是沒找,直接甩給了後端的mysql伺服器),這就要求建立能分析協議報文的負載均衡(據說lvs強於原來apt的dnet所以被linux收錄進核心)

而真正提供服務的mysqlserver才是realserver,tcp二層交換裝置叫交換機---就是乙個負載均衡裝置,它具備**功能----就是乙個**器,接收來自乙個主機或者多個主機對乙個主機的訪問,他也能把來自乙個主機的很多請求分發到多個主機上去(只要目標不同),所以說他是個分發裝備,但它是基於目標mac位址分發的,所以把它稱作二層裝置

路由器把報文做**的時候,把ip作為**位址 路由器是三層裝置

lvs所在主機為四層裝置,他根據請求報文的目標ip和埠做分發(也被稱作layer4交換機或四層路由),根據負載均衡演算法,從集群中挑選出乙個主機作為請求的響應,依附於netfilter

有5個流向

當正常流程prerouting-input 

Linux 負載均衡

在排程器的實現技術中,ip負載均衡技術是效率最高的。在已有的ip負載均衡技術中有通過網路位址轉換 network address translation 將一組伺服器構成乙個高效能的 高可用的虛擬伺服器,我們稱之為vs nat技術 virtual server via network address...

linux負載均衡

1.載均衡可以分為基於流的和基於包的,基於流的實現更合理但是有的時候必須需要基於包的,只可惜,linux核心並沒有很好的實現基於包的負載均衡。2.6早期的核心實現了乙個multipath的機制,可以認為是乙個負載均衡器,但是它卻是基於fib的,可以認為是基於流的,因為每乙個流的第乙個包從cache中...

Linux 負載均衡 LVS

1 介紹nat模式 優點 可以簡單快速配置負載均衡 缺點 單機器有瓶頸 附屬機器的閘道器 gateway 必須是主機內網ip 2 安裝 yum install y ipvsadm3 新建指令碼 bin bash director 伺服器上開啟路由 功能 echo 1 proc sys net ipv...