成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

LVS與HAProxy的對比

IT那活兒 / 2900人閱讀
LVS與HAProxy的對比
眾所周知LVS與HAProxy都是為集群提供負(fù)載均衡功能的,那我們在實際使用中應(yīng)該如何在二者中選擇更適合自己業(yè)務(wù)場景的呢?下面讓我們來分析一下它們各自的特點。


LVS簡介:

LVS群集,也叫LVS虛擬服務(wù)器(Linux Virtual Server),針對Linux內(nèi)核開發(fā)的一個負(fù)載均衡項目,由我國章文嵩博士在1998年5月創(chuàng)建,基于IP地址和內(nèi)容請求分發(fā)的高效的負(fù)載均衡解決方法,現(xiàn)已為Linux內(nèi)核的一部分,默認(rèn)編譯為ip_vs模塊。
官方網(wǎng)站:http://www.linuxvirtualserver.org/

1.LVS主要使用場景:

適用于各種高并發(fā)場景,抗并發(fā)能力特別強(qiáng),LVS主要做的是四層(傳輸層)負(fù)載。

2.LVS的優(yōu)點:

  • 首先它是基于4層的網(wǎng)絡(luò)協(xié)議的,僅作為分發(fā)只用,沒有流量的產(chǎn)生,抗負(fù)載能力強(qiáng),對于服務(wù)器的硬件要求除了網(wǎng)卡外,其他沒有太多要求;
  • 配置性比較低,這是一個缺點也是一個優(yōu)點,因為沒有可太多配置的東西,大大減少了人為出錯的幾率;

  • 應(yīng)用范圍比較廣,不僅僅對web服務(wù)做負(fù)載均衡,還可以對其他應(yīng)用(mysql)做負(fù)載均衡;

  • LVS架構(gòu)中存在一個虛擬IP的概念,需要向IDC多申請一個IP來做虛擬IP。

3.LVS的四種工作模式

DR:直接路由模式

TUN:隧道模式
NAT:路由轉(zhuǎn)發(fā)模式
FULLNAT模式

僅從性能上作比較:DR>TUN>NAT>FULLNAT

四種工作模式的詳細(xì)介紹:

DS:Director Server 指的是前端負(fù)載均衡器節(jié)
       點
RS:Real Server 后端真實的工作服務(wù)器
VIP:向外部直接面向用戶請求,作為用戶請求的
        目標(biāo)的IP地址
DIP:Director Server IP 主要用于和內(nèi)部主機(jī)通
        訊的IP地址
RIP:Real Server IP 后端服務(wù)器的IP地址
CIP:Client IP 訪問客戶端的IP地址 
  • DR:直接路由模式

請求由 LVS 接受,由真實提供服務(wù)的服務(wù)器(RealServer, RS)直接返回給用戶,返回的時候不經(jīng)過 LVS。

DR 模式下需要 LVS 和綁定同一個 VIP(RS 通過將 VIP 綁定在 loopback 實現(xiàn))。

一個請求過來時,LVS 只需要將網(wǎng)絡(luò)幀的 MAC 地址修改為某一臺 RS 的 MAC,該包就會被轉(zhuǎn)發(fā)到相應(yīng)的 RS 處理,注意此時的源 IP 和目標(biāo) IP 都沒變,LVS 只是做了一下移花接木。

RS 收到 LVS 轉(zhuǎn)發(fā)來的包,鏈路層發(fā)現(xiàn) MAC 是自己的,到上面的網(wǎng)絡(luò)層,發(fā)現(xiàn) IP 也是自己的,于是這個包被合法地接受,RS 感知不到前面有 LVS 的存在。

而當(dāng) RS 返回響應(yīng)時,只要直接向源 IP(即用戶的 IP)返回即可,不再經(jīng)過 LVS。

  • TUN:隧道模式

客戶端將訪問vip報文發(fā)送給LVS服務(wù)器;

LVS服務(wù)器將請求報文重新封裝,發(fā)送給后端真實服務(wù)器;

后端真實服務(wù)器將請求報文解封,在確認(rèn)自身有vip之后進(jìn)行請求處理;

后端真實服務(wù)器在處理完數(shù)據(jù)請求后,直接響應(yīng)客戶端。

此模式實現(xiàn)起來較為復(fù)雜。

  • NAT:路由轉(zhuǎn)發(fā)模式

NAT(Network Address Translation)是一種外網(wǎng)和內(nèi)網(wǎng)地址映射的技術(shù)。

多目標(biāo)的DNAT(iptables)轉(zhuǎn)換;它通過修改請求報文的目標(biāo)IP地址(同時可能會修改目標(biāo)端口)挑選出某Real Server的RIP地址實現(xiàn)轉(zhuǎn)發(fā);在LVS負(fù)載均衡調(diào)度器上請求先發(fā)送給PREROUTING-->INPUT,然后經(jīng)由監(jiān)聽在INPUT上的LVS程序強(qiáng)制將請求轉(zhuǎn)發(fā)給 POSTROUTING

NAT 模式下,網(wǎng)絡(luò)報的進(jìn)出都要經(jīng)過 LVS 的處理。LVS 需要作為 RS 的網(wǎng)關(guān)。

當(dāng)包到達(dá) LVS 時,LVS 做目標(biāo)地址轉(zhuǎn)換(DNAT),將目標(biāo) IP 改為 RS 的 IP。RS 接收到包以后,仿佛是客戶端直接發(fā)給它的一樣。

RS 處理完,返回響應(yīng)時,源 IP 是 RS IP,目標(biāo) IP 是客戶端的 IP。

這時 RS 的包通過網(wǎng)關(guān)(LVS)中轉(zhuǎn),LVS 會做源地址轉(zhuǎn)換(SNAT),將包的源地址改為 VIP,這樣,這個包對客戶端看起來就仿佛是 LVS 直接返回給它的。客戶端無法感知到后端 RS 的存在。

注意:

RS的RIP和Director的DIP必須在同一IP網(wǎng)絡(luò)
RS和DIP應(yīng)該使用私網(wǎng)地址且RD的網(wǎng)關(guān)要指向DIP
真實服務(wù)器的網(wǎng)關(guān)必須設(shè)置為LVS的ip地址。
  • FULLNAT模式

無論是 DR 還是 NAT 模式,不可避免的都有一個問題:LVS 和 RS 必須在同一個 VLAN 下,否則 LVS 無法作為 RS 的網(wǎng)關(guān)。

Full-NAT 相比 NAT 的主要改進(jìn)是,在 SNAT/DNAT 的基礎(chǔ)上,加上另一種轉(zhuǎn)換,轉(zhuǎn)換過程如下:

在包從 LVS 轉(zhuǎn)到 RS 的過程中,源地址從客戶端 IP 被替換成了 LVS 的內(nèi)網(wǎng) IP。

內(nèi)網(wǎng) IP 之間可以通過多個交換機(jī)跨 VLAN 通信。

當(dāng) RS 處理完接受到的包,返回時,會將這個包返回給 LVS 的內(nèi)網(wǎng) IP,這一步也不受限于 VLAN。

LVS 收到包后,在 NAT 模式修改源地址的基礎(chǔ)上,再把 RS 發(fā)來的包中的目標(biāo)地址從 LVS 內(nèi)網(wǎng) IP 改為客戶端的 IP。

Full-NAT 主要的思想是把網(wǎng)關(guān)和其下機(jī)器的通信,改為了普通的網(wǎng)絡(luò)通信,從而解決了跨 VLAN 的問題。采用這種方式,LVS 和 RS 的部署在 VLAN 上將不再有任何限制,大大提高了運(yùn)維部署的便利性。

fullnat模式和nat模式相似,但是與nat不同的是nat模式只做了兩次地址轉(zhuǎn)換,fullnat模式卻做了四次。

4.LVS的十種負(fù)載均衡算法

(1) 輪循調(diào)度 rr

均等地對待每一臺服務(wù)器,不管服務(wù)器上的實際連接數(shù)和系統(tǒng)負(fù)載

(2) 加權(quán)輪調(diào) wrr

調(diào)度器可以自動問詢真實服務(wù)器的負(fù)載情況,并動態(tài)調(diào)整權(quán)值

(3) 最少鏈接 lc

動態(tài)地將網(wǎng)絡(luò)請求調(diào)度到已建立的連接數(shù)最少的服務(wù)器上

如果集群真實的服務(wù)器具有相近的系統(tǒng)性能,采用該算法可以較好的實現(xiàn)負(fù)載均衡

(4) 加權(quán)最少鏈接 wlc

調(diào)度器可以自動問詢真實服務(wù)器的負(fù)載情況,并動態(tài)調(diào)整權(quán)值

帶權(quán)重的誰不干活就給誰分配,機(jī)器配置好的權(quán)重高

(5) 基于局部性的最少連接調(diào)度算法 lblc

這個算法是請求數(shù)據(jù)包的目標(biāo) IP 地址的一種調(diào)度算法,該算法先根據(jù)請求的目標(biāo) IP 地址尋找最近的該目標(biāo) IP 地址所有使用的服務(wù)器,如果這臺服務(wù)器依然可用,并且有能力處理該請求,調(diào)度器會盡量選擇相同的服務(wù)器,否則會繼續(xù)選擇其它可行的服務(wù)器

(6) 復(fù)雜的基于局部性最少的連接算法 lblcr

記錄的不是要給目標(biāo) IP 與一臺服務(wù)器之間的連接記錄,它會維護(hù)一個目標(biāo) IP 到一組服務(wù)器之間的映射關(guān)系,防止單點服務(wù)器負(fù)載過高。

(7) 目標(biāo)地址散列調(diào)度算法 dh

該算法是根據(jù)目標(biāo) IP 地址通過散列函數(shù)將目標(biāo) IP 與服務(wù)器建立映射關(guān)系,出現(xiàn)服務(wù)器不可用或負(fù)載過高的情況下,發(fā)往該目標(biāo) IP 的請求會固定發(fā)給該服務(wù)器。

(8) 源地址散列調(diào)度算法 sh

與目標(biāo)地址散列調(diào)度算法類似,但它是根據(jù)源地址散列算法進(jìn)行靜態(tài)分配固定的服務(wù)器資源。

(9) 最少期望延遲 sed

不考慮非活動鏈接,誰的權(quán)重大,優(yōu)先選擇權(quán)重大的服務(wù)器來接收請求,但權(quán)重大的機(jī)器會比較忙

(10) 永不排隊 nq

無需隊列,如果有realserver的連接數(shù)為0就直接分配過去


HAProxy簡介:

HAProxy是一個使用C語言編寫的自由及開放源代碼軟件,其提供高可用性、負(fù)載均衡,以及基于TCP和HTTP的應(yīng)用程序代理。

1. HAProxy主要適用場景

HAProxy特別適用于那些負(fù)載特大的web站點,這些站點通常又需要會話保持或七層處理。HAProxy運(yùn)行在當(dāng)前的硬件上,完全可以支持?jǐn)?shù)以萬計的并發(fā)連接。

2. HAProxy的優(yōu)點

(1)HAProxy是支持虛擬主機(jī)的,通過frontend指令來實現(xiàn)

(2)支持Session的保持,Cookie的引導(dǎo)等工作

(3)支持url檢測后端的服務(wù)器出問題的檢測會有很好的幫助。

(4)它跟LVS一樣,本身僅僅就只是一款負(fù)載均衡軟件;單純從效率上來講HAProxy更會比Nginx有更出色的負(fù)載均衡速度,在并發(fā)處理上也是優(yōu)于Nginx的。

(5)HAProxy可以對Mysql讀進(jìn)行負(fù)載均衡,對后端的MySQL節(jié)點進(jìn)行檢測和負(fù)載均衡

(6)能對請求的url和header中的信息做匹配,有比lvs有更好的7層實現(xiàn)

3. 磁盤分區(qū)參數(shù)說明:

HAProxy的負(fù)載調(diào)度算法

(1)roundrobin 表示簡單的輪詢

(2)static-rr 表示根據(jù)權(quán)重進(jìn)行輪詢

(3)leastconn 表示最少連接者先處理

(4)source 表示根據(jù)請求源IP,這個跟Nginx的IP_hash機(jī)制類似,我們用其作為解 決session問題的一種方法

(5)ri 表示根據(jù)請求的URI

(6)rl_param 表示根據(jù)請求的URl參數(shù)

(7)hdr(name) 表示根據(jù)HTTP請求頭來鎖定每一次HTTP請求

(8)rdp-cookie(name) 表示根據(jù)據(jù)cookie(name)來鎖定并哈希每一次TCP請求

HAProxy相比LVS的使用要簡單很多,功能方面也很豐富。當(dāng)前,HAProxy支持兩種主要的代理模式:"tcp"也即4層(大多用于郵件服務(wù)器、內(nèi)部協(xié)議通信服務(wù)器等)、7層(HTTP)。在4層模式下,HAProxy僅在客戶端和服務(wù)器之間轉(zhuǎn)發(fā)雙向流量。7層模式下,HAProxy會分析協(xié)議,并且能通過允許、拒絕、交換、增加、修改或者請求(request)或者回應(yīng)(response)里指定內(nèi)容來控制協(xié)議,這種操作要基于特定規(guī)則。(新的1.3之后的版本引入了frontend,backend指令;frontend根據(jù)任意 HTTP請求頭內(nèi)容做規(guī)則匹配,然后把請求定向到相關(guān)的backend.)

以上是LVS和HAProxy的簡介及詳情,但上文只是陳述了它們的優(yōu)秀的地方,下面讓我們再來了解一下它們的不足,權(quán)衡利弊才能更好的幫我們進(jìn)行選擇。


LVS的缺點:

  1. LVS本身不支持正則表達(dá)式的處理,不能做動靜分離

  2. 網(wǎng)站應(yīng)用比較龐大時,LVS實現(xiàn)起來比較復(fù)雜,特別是后端存在Windows Server的機(jī)器時


HAProxy缺點:

  1. 不支持POP/SMTP協(xié)議

  2. 不支持SPDY協(xié)議

  3. 不支持HTTP cache功能

  4. 重載配置的功能需要重啟進(jìn)程

  5. 多進(jìn)程模式支持不夠友好

下圖是對二者進(jìn)行一個總結(jié):


END

更多精彩干貨分享

點擊下方名片關(guān)注

IT那活兒

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129888.html

相關(guān)文章

  • PHP面試題

    摘要:質(zhì)量高在設(shè)計時,可重用現(xiàn)有的,在以前的項目的領(lǐng)域中已被測試過的類使系統(tǒng)滿足業(yè)務(wù)需求并具有較高的質(zhì)量。代碼塊捕獲異常,并創(chuàng)建一個包含異常信息的對象。這樣可以解決超賣的問題,但是會導(dǎo)致文件得開銷很大。 6.你們公司是使用什么框架? 答:我們公司采用的是TP框架,運(yùn)用的mysql+apache+php進(jìn)行開發(fā),因為TP框架是一個免費(fèi)開源的,輕量級的php開發(fā)框架,而且是我們中國人自己開發(fā)的,...

    ls0609 評論0 收藏0
  • 微服務(wù)接入層設(shè)計動靜資源隔離

    摘要:接入層作用一的聚合。接入層作用二服務(wù)發(fā)現(xiàn)與動態(tài)負(fù)載均衡既然統(tǒng)一的入口變?yōu)榱私尤雽?,則接入層就有責(zé)任自動的發(fā)現(xiàn)后端拆分,聚合,擴(kuò)容,縮容的服務(wù)集群,當(dāng)后端服務(wù)有所變化的時候,能夠?qū)崿F(xiàn)健康檢查和動態(tài)的負(fù)載均衡。 此文已由作者劉超授權(quán)網(wǎng)易云社區(qū)發(fā)布。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營經(jīng)驗。 這個系列是微服務(wù)高并發(fā)設(shè)計,所以我們先從最外層的接入層入手,看都有什么樣的策略保證高并發(fā)。...

    jindong 評論0 收藏0
  • Nginx反向代理實現(xiàn)均衡負(fù)載

    摘要:架設(shè)服務(wù)器均衡負(fù)載方式有多種,是目前使用最廣泛的三種方案關(guān)于均衡負(fù)載架設(shè)服務(wù)器均衡負(fù)載方式有多種,是目前使用最廣泛的三種方案。服務(wù)器集群環(huán)境接下來講下想要搭的均衡負(fù)載環(huán)境。 http://homeway.me showImg(http://homeway.me/image/logo-nginx.png); 為jue.so架設(shè)一個服務(wù)器集群。 架設(shè)服務(wù)器均衡負(fù)載...

    zeyu 評論0 收藏0
  • 核心工具分析

    博文參考 http://www.cnblogs.com/like-minded/p/5157659.html http://blog.csdn.net/limingjian/article/details/41785575 HAProxy Nginx LVS Apache showImg(https://segmentfault.com/img/bVUdO1?w=900&h=894);showIm...

    Alliot 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<