国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
“軟”負(fù)載均衡學(xué)習(xí)點(diǎn)滴(三)

Author : 岑文初

Email: wenchu.cenwc@alibaba-inc.com

Blog: http://blog.csdn.net/cenwenchu79

Date: 2009-5-26

目錄

需求轉(zhuǎn)而學(xué)習(xí)... 2

“軟”負(fù)載均衡... 2

LVS Linux Virtual Server... 3

Virtual Server三種模式介紹... 3

Virtual Server三種模式的比較... 5

Virtual Server三種模式實(shí)踐... 6

三種模式下的簡(jiǎn)單壓力測(cè)試... 9

HA-Proxy. 10

HA-Proxy安裝和使用... 10

HA-Proxy的壓力測(cè)試結(jié)果... 15

負(fù)載學(xué)習(xí)心得... 15

HA-Proxy

         HA-Proxy相比LVS的使用要簡(jiǎn)單很多,功能方面也很豐富。HA-Proxy可以在47兩層作負(fù)載均衡,4層大多用于郵件服務(wù)器、內(nèi)部協(xié)議通信服務(wù)器等作負(fù)載均衡,7層用于Http分析負(fù)載轉(zhuǎn)發(fā)。

         HA-Proxy官方網(wǎng)站可以下載配置說(shuō)明文檔(configuration.txt)和架構(gòu)文件(architecture.txt)作為參考。具體的使用細(xì)節(jié)不做太多介紹,這里主要通過(guò)具體的配置來(lái)大致說(shuō)一下HA-Proxy的結(jié)構(gòu)。

HA-Proxy 組件圖

         HA-Proxy配置中分成四部分內(nèi)容,當(dāng)然這些組件不是必選的,可以根據(jù)需要選擇部分作為配置。Defaults組件是配置默認(rèn)參數(shù)的,這些參數(shù)可以被利用配置到frontend,backend,listen組件中(當(dāng)這些組件某些參數(shù)沒有被配置而在Defaults中配置了)。Frontend組件是接收請(qǐng)求的前端虛擬節(jié)點(diǎn),就類似于LVS中配置了VIPLoad BalancerFrontend可以直接指定后端指向那一個(gè)backend(可動(dòng)態(tài)選擇)。Backend是后端服務(wù)集群的配置,類似于LVS中的那些Real Server,一個(gè)Backend對(duì)應(yīng)一個(gè)或者多個(gè)實(shí)體服務(wù)器。ListenFrontendBackend的組合體,可以直接定義一個(gè)類似于JBoss Server Farm。還有一些默認(rèn)的配置可以通過(guò)在配置文件中配置或者在命令行中作為參數(shù)輸入。

HA-Proxy安裝和使用

安裝HA-Proxy

1.  下載HA-Proxy安裝包。

2.  解壓執(zhí)行make TARGET=linux26(注意,TARGET后面根據(jù)本機(jī)操作系統(tǒng)內(nèi)核版本來(lái)填寫)

3.  Make install

4.  目錄下執(zhí)行haproxy,如果有使用說(shuō)明出現(xiàn)表示已經(jīng)安裝正常。

5.  使用方式haproxy –f 配置文件地址。(例如 haproxy –f haproxy.cfg

        

 

HA-Proxy日志配置說(shuō)明:

HA-Proxy可以收集本機(jī)及其他后端服務(wù)器日志,但是需要在Load Balancer上作一些配置。

         首先修改/etc/sysconfig/syslog文件,將SYSLOGD_OPTIONS="-m 0” 修改為SYSLOGD_OPTIONS="-m 0 -r -x",支持收集遠(yuǎn)程服務(wù)器日志。

         然后修改/etc/syslog.conf,增加如下語(yǔ)句:

#add by haproxy

local0.*  /home/admin/tools/haproxy-1.3.17/haproxy.log  // haproxy.log地址代表了需要存儲(chǔ)日志的地址

執(zhí)行service syslog restart,重新啟動(dòng)系統(tǒng)日志器

最后就是在HA-Proxy的配置中增加日志輸出(具體可以參考后面的配置文件說(shuō)明)

 

         HA-Proxy配置文件說(shuō)明:

         下面的配置文件簡(jiǎn)單來(lái)說(shuō)就是配置了根據(jù)請(qǐng)求參數(shù)的不同,將請(qǐng)求分別定向到后端的淘寶集群和阿里軟件集群。具體配置文件(haproxy.cfg)如下:

   log 127.0.0.1  local0 info  //日志輸出配置,所有的日志都記錄在本機(jī),通過(guò)local0的系統(tǒng)日志器輸出,這關(guān)系到前面我們做的配置

    daemon  //以后臺(tái)進(jìn)程方式啟動(dòng)Ha-proxy

    nbproc 2 //啟動(dòng)兩個(gè)ha-proxy進(jìn)程實(shí)例

    pidfile /home/admin/tools/haproxy-1.3.17/haproxy.pid    // pid記錄的文件

 

defaults  //默認(rèn)配置

    mode http //默認(rèn)采用http模式,可以配置tcp來(lái)做4層消息轉(zhuǎn)發(fā)

    option httplog //采用http日志格式

    retries 3 //三次連接失敗就認(rèn)為是服務(wù)器不可用,主要是通過(guò)后面的check配置來(lái)實(shí)現(xiàn)服務(wù)器狀態(tài)檢查

    maxconn 2000 //最大連接數(shù)

    contimeout 5000 //連接超時(shí)時(shí)間

    clitimeout 50000 //客戶端連接超時(shí)時(shí)間

    srvtimeout 50000 //服務(wù)端連接超時(shí)時(shí)間

    stats uri /admin?stats //服務(wù)器狀態(tài)統(tǒng)計(jì)查看頁(yè)面

    stats auth wenchu:wenchu  //服務(wù)器狀態(tài)查看授權(quán)的用戶名和密碼設(shè)置,可以不設(shè)置

    option httpchk HEAD /welcome.html HTTP/1.0  //服務(wù)器狀態(tài)檢查設(shè)置,這里是向每一個(gè)后端服務(wù)器請(qǐng)求/welcome.html頁(yè)面來(lái)檢查服務(wù)端健康狀況。

 

frontend http-in  //前端節(jié)點(diǎn)定義

    bind :8181 //虛擬服務(wù)節(jié)點(diǎn)監(jiān)聽本地的8181端口

    mode http

    log  global

    option httplog

    option httpclose //每次請(qǐng)求完畢后主動(dòng)關(guān)閉http通道,HA-Proxy不支持keep-alive模式,只能夠模擬這種模式的實(shí)現(xiàn)

    option forwardfor   //如果后端服務(wù)器需要獲得客戶端的真實(shí)IP需要配置次參數(shù),將可以從Http Header中獲得客戶端IP

 

    capture request header Host len 20 //此配置和一下的類似配置都是抓取Http請(qǐng)求中的參數(shù)記錄到日志中。

    capture request header User-Agent len 16

    capture request  header Content-Length len 10     

    capture request  header Referer        len 20 

    capture response header Content-Length len 10

    //控制策略的配置

    acl api_taobao url_sub -i sip_apiname=taobao.  //在請(qǐng)求url中包含sip_apiname=taobao,則此控制策略返回true,否則為false

    acl api_alisoft url_sub -i sip_apiname=alisoft. //在請(qǐng)求url中包含sip_apiname=alisoft,則此控制策略返回true,否則為false

    acl invalid_req url_sub -i sip_apiname= //在請(qǐng)求url中包含sip_apiname=,則此控制策略返回true,否則為false

    acl stat_req url_dir -i admin //在請(qǐng)求url中存在admin作為部分地址路徑,則此控制策略返回true,否則返回false

 

    block if !invalid_req !stat_req  //block表示阻止請(qǐng)求,返回403錯(cuò)誤,當(dāng)前表示如果不滿足策略invalid_req,同時(shí)也不滿足策略stat_req,則阻止請(qǐng)求。(就是要求URL中必需有參數(shù)sip_apiname,除非是查看服務(wù)器狀態(tài)的URL)。

 

    use_backend alisoft_server if api_alisoft  //如果是滿足策略api_alisoft的情況,則使用alisoft_server作為后端服務(wù)集群。

    use_backend taobao_server if api_taobao //如果是滿足策略api_taobao的情況,則使用taobao_server作為后端服務(wù)集群。

    default_backend alisoft_server //使用alisoft_server作為默認(rèn)后端服務(wù)集群。

 

backend alisoft_server //后端節(jié)點(diǎn)定義

   mode http

   balance roundrobin  //負(fù)載均衡策略配置

   cookie SERVERID  //允許插入serveridcookie中,serverid后面可以定義

  

   server app1 10.2.225.139:80 cookie 1 check fall 5 weight 1  //真實(shí)服務(wù)器配置定義cookie 1表示serverid1,check表示需要狀態(tài)檢查,fall 5表示失敗五次就認(rèn)為服務(wù)器狀態(tài)不可用(不在接受請(qǐng)求),weight 1表示權(quán)重

   server app2 10.2.225.136:80 cookie 2 check fall 5 weight 2

  

backend taobao_server //后端節(jié)點(diǎn)定義

   mode http

   server app3 10.2.226.41:80 check fall 5 

 

完成配置后,執(zhí)行haproxy –f haproxy.cfg,后臺(tái)進(jìn)程就可以啟動(dòng)了,然后在瀏覽器中輸入剛才定義的狀態(tài)檢查地址可以看到如下內(nèi)容:

 

 

 

         可以看到定義的前端和后端節(jié)點(diǎn)的狀態(tài)。對(duì)于Ha-proxy很多配置這里面都沒有使用,也沒有詳細(xì)講解,使用者可以通過(guò)查看官方的配置文檔了解細(xì)節(jié)。下面三個(gè)圖片分別說(shuō)明了對(duì)于sip_apiname不同的訪問(wèn)產(chǎn)生最后的結(jié)果。

 

 

 

上圖的sip_apinamealisoft.get.user,因此被定向到Alisoft集群,也就是136或者139上(這里是136處理了服務(wù))。

上圖的sip_apinametaobao.get.user,因此被定向到Alisoft集群,也就是41上。

上圖的sip_apiname沒有傳遞,因此被拒絕訪問(wèn),返回403錯(cuò)誤。

 

 

HA-Proxy的壓力測(cè)試結(jié)果

簡(jiǎn)單的壓力測(cè)試采用Apache ab,500并發(fā)用戶,10w的請(qǐng)求總數(shù)。

 

 

總耗時(shí)(s)

TPS(#/sec)

LVS-NAT

22.480

4448.34

LVS-TUNNEL

10.707

9339.80

LVS-DR

10.177

9825.68

HA-2Node

21.387

4675.61

HA-5Node

27.371

3653.37

 

HA-2Node為配置了兩個(gè)節(jié)點(diǎn)作為后段的服務(wù)節(jié)點(diǎn),HA-5Node為配置了5個(gè)節(jié)點(diǎn)作為后端的服務(wù)處理節(jié)點(diǎn)。上面結(jié)果看到2個(gè)節(jié)點(diǎn)的HA反而比5個(gè)節(jié)點(diǎn)的速度來(lái)的快,同時(shí)HA7層的轉(zhuǎn)發(fā)和LVS-NAT性能相近。

 

HA-Proxy使用下來(lái),總體上感覺比較簡(jiǎn)單,但功能卻十分強(qiáng)大,但是性能方面來(lái)說(shuō)需要關(guān)注在多節(jié)點(diǎn)和高壓力的情況下的表現(xiàn)。

 

 

“軟”負(fù)載均衡學(xué)習(xí)心得

         LVS三種模式中也看到了類似于分布式文件系統(tǒng)的一些設(shè)計(jì)經(jīng)驗(yàn),就是避免在管理資源過(guò)程中,讓Manager成為了系統(tǒng)瓶頸。就好比LVS-NAT中的Load Balancer既負(fù)責(zé)請(qǐng)求分配同時(shí)也負(fù)責(zé)消息回復(fù),成為了系統(tǒng)的關(guān)鍵節(jié)點(diǎn),自身性能損耗比較大,加上算法對(duì)于數(shù)據(jù)采集的要求,自身穩(wěn)定性和可用性下降,最后影響了整個(gè)架構(gòu)。在HDFS中,Master的責(zé)任就和明晰,就是負(fù)責(zé)節(jié)點(diǎn)管理,不參與數(shù)據(jù)傳輸和通道建立,因此就可以很大程度上提升自身的效率。資源管理(申請(qǐng),歸還,狀態(tài)檢查等)和資源使用應(yīng)該清晰的劃分開來(lái),這樣可以讓各個(gè)角色可以更好的獨(dú)立的滿足需求,防止由于其他功能影響到了“本職工作”。

就負(fù)載均衡效率來(lái)說(shuō),硬件實(shí)現(xiàn)負(fù)載均衡應(yīng)該優(yōu)于用軟件實(shí)現(xiàn)負(fù)載均衡,就好比SSL硬件加速器要遠(yuǎn)優(yōu)于SSL軟件解析模塊。但從另一個(gè)角度來(lái)看,分布式計(jì)算,分布式存儲(chǔ),分布式DB都采用橫向擴(kuò)展結(jié)合低成本資源的方式滿足需求。而軟件實(shí)現(xiàn)負(fù)載在很多情況下可以盡可能的降低成本,同時(shí)在性能損失較小的情況下實(shí)現(xiàn)硬件負(fù)載所支持的所有功能。因此在一定的環(huán)境下,部分采用軟件來(lái)實(shí)現(xiàn)負(fù)載均衡能夠增加可擴(kuò)展性,提升配置靈活度,降低配置成本。

         LVSHA-Proxy,可以發(fā)現(xiàn)不論從4層做轉(zhuǎn)發(fā)還是7層做轉(zhuǎn)發(fā)都會(huì)存在損失,而且LVS-NAT模式和HA-Proxy都會(huì)受到解析負(fù)載度和內(nèi)容大小的影響。因此完全采用軟件負(fù)載或者采用某一種配置的軟件負(fù)載都不可行,通過(guò)將硬件負(fù)載和軟件負(fù)載相結(jié)合,或者多種軟件負(fù)載混合使用,可以更好的發(fā)揮軟件負(fù)載靈活的優(yōu)勢(shì),同時(shí)也不會(huì)因?yàn)檗D(zhuǎn)發(fā)損失影響性能。

附帶:

為了投稿這篇文章壓了很久,同時(shí)和軟負(fù)載相對(duì)應(yīng)的還有服務(wù)隔離機(jī)制的文章,后續(xù)會(huì)發(fā),同時(shí)對(duì)于軟負(fù)載的運(yùn)行期動(dòng)態(tài)配置也做了嘗試,在HA上效果不錯(cuò)。當(dāng)前sip已經(jīng)采用了軟負(fù)載+服務(wù)隔離的策略,提高平臺(tái)服務(wù)質(zhì)量。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux中l(wèi)vs和haproxy哪個(gè)好?
高并發(fā)解決方案--負(fù)載均衡
一例千萬(wàn)級(jí)pv高性能高并發(fā)網(wǎng)站架構(gòu)[原創(chuàng)]
統(tǒng)一接入層方案
搜狐Linux運(yùn)維工程師面試真題
什么是集群?看完這篇你就知道啦!
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服