大型網(wǎng)站的負(fù)載均衡器dbproxy和db_第1頁
大型網(wǎng)站的負(fù)載均衡器dbproxy和db_第2頁
大型網(wǎng)站的負(fù)載均衡器dbproxy和db_第3頁
大型網(wǎng)站的負(fù)載均衡器dbproxy和db_第4頁
大型網(wǎng)站的負(fù)載均衡器dbproxy和db_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本文主要分析網(wǎng)站后臺(tái)架構(gòu)中的負(fù)載均衡器,企業(yè)常用的硬件負(fù)載均衡器軟件負(fù)載均衡器、數(shù)據(jù)庫代理服務(wù)器和數(shù)據(jù)庫。1.1 負(fù)載均衡在大型網(wǎng)站部署中,負(fù)載均衡至少有三層部署。第一層為web server或者緩存代理之上的負(fù)載均衡,第二層為數(shù)據(jù)庫之上的負(fù)載均衡,第三層為存儲(chǔ)設(shè)備之上的負(fù)載均衡。在第一層部署中,最常使用的是硬件負(fù)載均衡器有F5 BIG-IP、Citrix NetScaler、Radware、Cisco CSS、Foundry等產(chǎn)品。這些產(chǎn)品價(jià)格不菲,高達(dá)幾十萬人民幣。在中國(guó)大陸,采用F5Network公司的BIG-IP負(fù)載均衡交換機(jī)的網(wǎng)站有新浪網(wǎng)、雅虎、百度、搜狐、鳳凰網(wǎng)、央視國(guó)際、中華英才

2、網(wǎng)、貓撲、暢游等。之前淘寶采用 NetScaler作為其硬件負(fù)載均衡器。后來用軟件負(fù)載均衡器LVS和HAproxy混合使用來代替硬件負(fù)載均衡器。硬件負(fù)載均衡器可以提供OSI參考模型的第四/七層進(jìn)行負(fù)載均衡。在第七層實(shí)現(xiàn)負(fù)載均衡的原理是,通過檢查流經(jīng)的HTTP報(bào)頭,根據(jù)報(bào)頭內(nèi)的信息來執(zhí)行負(fù)載均衡任務(wù)。在第四層(網(wǎng)絡(luò)層)實(shí)現(xiàn)負(fù)載均衡的DR模式的原理是,通過更改請(qǐng)求包的目的MAC地址來進(jìn)行負(fù)載均衡。在第一層部署中,最常用的軟件負(fù)載均衡器為L(zhǎng)VS(LinuxVirtual Server)和HAproxy。其中LVS采用基于IP負(fù)載均衡技術(shù)和基于內(nèi)容請(qǐng)求分發(fā)技術(shù)。最常用的LVS負(fù)載均衡技術(shù)為DR負(fù)載均衡

3、。在第二層部署中,最常用的為mysql-proxy(后端部署必須為MySQL數(shù)據(jù)庫),該代理服務(wù)器可以監(jiān)測(cè)、分析或改變客戶端的通信。最常用途為負(fù)載均衡,讀寫分離等。在第三層部署中,最常用的存儲(chǔ)設(shè)備都要做RAID,其中RAID0便為最基本的存儲(chǔ)層的負(fù)載均衡。RAID0通過分帶技術(shù),將數(shù)據(jù)分割,然后并行的讀寫于各個(gè)磁盤上。這樣實(shí)現(xiàn)底層存儲(chǔ)一級(jí)的負(fù)載均衡。1.2 LVS軟件負(fù)載均衡器LVS(LinuxVirtual Server)是由章文嵩博士主導(dǎo)開發(fā)的一款開源軟件,可以實(shí)現(xiàn)Linux平臺(tái)下的基于網(wǎng)絡(luò)層的負(fù)載均衡軟件。典型的基本架構(gòu)圖如圖6-2-1所示。圖6-2-1LVS集群采用IP負(fù)載均衡技術(shù)和基

4、于內(nèi)容請(qǐng)求分發(fā)技術(shù)。如圖6-2-1所示,LVS集群采用基于IP負(fù)載均衡技術(shù)和基于內(nèi)容請(qǐng)求分發(fā)技術(shù)。當(dāng)客戶端有請(qǐng)求時(shí),首先將請(qǐng)求包傳送到Load Balance,然后Load Balance從后面的Real Servers中按照一定的算法策略選取一臺(tái)Real Server,比如Real Server1,然后把請(qǐng)求包發(fā)送給Real Server1進(jìn)行處理。對(duì)所有用戶而言,面向用戶的服務(wù)器端IP地址,只有一臺(tái),稱之為VirtualIP Address。1.2.1 LVS集群中實(shí)現(xiàn)的三種IP負(fù)載均衡技術(shù)VS/NAT、 VS/TUN 和VS/DR技術(shù)是LVS集群中實(shí)現(xiàn)的三種IP負(fù)載均衡技術(shù)。1.2.1.

5、1 VS/NAT技術(shù)VS/NAT(VirtualServer via Network Address Translation)技術(shù),主要通過網(wǎng)絡(luò)地址轉(zhuǎn)換,將一組服務(wù)器構(gòu)成一個(gè)高性能的、高可用的虛擬服務(wù)器。NAT的工作原理是當(dāng)內(nèi)部網(wǎng)絡(luò)中的主機(jī)要訪問Internet或被Internet訪問時(shí),就需要采用網(wǎng)絡(luò)地址轉(zhuǎn)換NAT,將內(nèi)部地址轉(zhuǎn)化為Internet上可用的外部地址。NAT的工作原理是報(bào)文頭(目標(biāo)地址、源地址和端口等)被正確改寫后,客戶端相信他們連接到了一個(gè)IP地址,而不同的IP地址服務(wù)器組也認(rèn)為他們與客戶直接相連的。由此,可以用NAT方法將不同IP地址的并行網(wǎng)絡(luò)服務(wù)變成一個(gè)IP地址上的虛擬服

6、務(wù)。VS/NAT的體系結(jié)構(gòu)如圖6-2-1-1所示。圖6-2-1-1客戶端訪問服務(wù)器的請(qǐng)求包和響應(yīng)包變化情況如下所示:訪問Web服務(wù)的報(bào)文可能有以下的源地址和目標(biāo)地址:SOURCE:3456DEST:80調(diào)度器從調(diào)度列表中選出一臺(tái)服務(wù)器,例如是:8000。該報(bào)文會(huì)被改寫為如下地址,并將它發(fā)送給選出的服務(wù)器。SOURCE:3456DEST:8000從服務(wù)器返回到調(diào)度器的響應(yīng)報(bào)文如下:SOURCE:8000DEST:3456響應(yīng)報(bào)文的源地址會(huì)被改寫為

7、虛擬服務(wù)的地址,再將報(bào)文發(fā)送給客戶:SOURCE:80DEST:3456這樣,客戶認(rèn)為是從:80服務(wù)得到正確的響應(yīng),而不會(huì)知道該請(qǐng)求是服務(wù)器還是服務(wù)器處理的。 VS/TUN技術(shù)VS/TUN 的工作原理:它的連接調(diào)度和管理與VS/NAT中的一樣,只是它的報(bào)文轉(zhuǎn)發(fā)方法不同。調(diào)度器根據(jù)各個(gè)服務(wù)器的負(fù)載情況,動(dòng)態(tài)地選擇一臺(tái)服務(wù)器,將請(qǐng)求報(bào)文封裝在另一個(gè)IP報(bào)文中,再將封裝后的IP報(bào)文轉(zhuǎn)發(fā)給選出的服務(wù)器;服務(wù)器收到報(bào)文后,先將報(bào)文解封獲得原來目標(biāo)地址為VIP的報(bào)文,服務(wù)器發(fā)現(xiàn)VIP地址被配置在本地的IP隧道設(shè)備上,所

8、以就處理這個(gè)請(qǐng)求,然后根據(jù)路由表將響應(yīng)報(bào)文直接返回給客戶。如圖6-2-1-2所示。圖6-2-1- VS/DR技術(shù)在VS/DR中,調(diào)度器根據(jù)各個(gè)服務(wù)器的負(fù)載情況,動(dòng)態(tài)地選擇一臺(tái)服務(wù)器,不修改也不封裝IP報(bào)文,而是將數(shù)據(jù)幀的MAC地址改為選出服務(wù)器的MAC地址,再將修改后的數(shù)據(jù)幀在與服務(wù)器組的局域網(wǎng)上發(fā)送。因?yàn)閿?shù)據(jù)幀的MAC地址是選出的服務(wù)器,所以服務(wù)器肯定可以收到這個(gè)數(shù)據(jù)幀,從中可以獲得該IP報(bào)文。當(dāng)服務(wù)器發(fā)現(xiàn)報(bào)文的目標(biāo)地址VIP是在本地的網(wǎng)絡(luò)設(shè)備上,服務(wù)器處理這個(gè)報(bào)文,然后根據(jù)路由表將響應(yīng)報(bào)文直接返回給客戶。如圖6-2-1-3所示。圖6-2-1- LVS的調(diào)度算

9、法前面幾節(jié),介紹了LVS的三種基于IP的負(fù)載均衡技術(shù),下面簡(jiǎn)單介紹一下調(diào)度算法。調(diào)度算法的目的是解決如何合理有效的從LVS后端的RealServers中,選擇一個(gè)RealServer來對(duì)請(qǐng)求包進(jìn)行處理。在整個(gè)LVS項(xiàng)目中,共給出八種調(diào)度算法,主要有:(1)輪詢調(diào)度。主要指按順序從RealServers中選擇一臺(tái)RealServers。(2) 加權(quán)輪叫調(diào)度。給Real Servers設(shè)置一定權(quán)值,進(jìn)行調(diào)度。(3)最小連接調(diào)度。按照RealServers的連接情況進(jìn)行調(diào)度。(4)加權(quán)最小連接。根據(jù)設(shè)置的權(quán)值和現(xiàn)有的連接數(shù)進(jìn)行調(diào)度。(5)基于局部性的最小連接。主要用于增大Cache命中。(6)代復(fù)制

10、的基于局部性的最小連接。(7)目標(biāo)地址散列調(diào)度。(8)源地址散列調(diào)度。在上述八種調(diào)度算法中,最常用的調(diào)度算法是輪詢調(diào)度。1.3 db proxy在大型互聯(lián)網(wǎng)站的數(shù)據(jù)庫部署中,部署最多的數(shù)據(jù)庫為MySQL。隨著MySQL中Innodb存儲(chǔ)引擎對(duì)事物的支持,MySQL在互聯(lián)網(wǎng)公司部署中,應(yīng)用量越來越多。典型應(yīng)用MySQL的公司有Google、Baidu、Taobao等大型互聯(lián)網(wǎng)公司。MySQL的優(yōu)勢(shì)在于其高擴(kuò)展性和價(jià)格優(yōu)勢(shì)等。實(shí)際上,MySQL可以免費(fèi)應(yīng)用于企業(yè)級(jí)的部署中。在MySQL復(fù)制方式部署中,有兩種部署方式:同步復(fù)制和異步復(fù)制。同步復(fù)制采用NDB 存儲(chǔ)引擎,異步復(fù)制需要使用mysql-pr

11、oxy結(jié)合master-slave實(shí)現(xiàn)。異步復(fù)制主要為了解決讀寫分離的問題。因?yàn)橛脩魧?duì)網(wǎng)站的訪問有讀操作多,寫操作少的特點(diǎn)。甚至像這樣的網(wǎng)站讀寫比例高達(dá)10:1,所以采用MySQL-Proxy結(jié)合主從異步復(fù)制實(shí)現(xiàn)讀寫分離是非常重要的增快訪問速度的方法。這樣如果有更高的用戶訪問需求,通過增加slave機(jī)器,不會(huì)對(duì)現(xiàn)有系統(tǒng)提供的服務(wù)產(chǎn)生影響而實(shí)現(xiàn)很好的、很靈活的業(yè)務(wù)擴(kuò)展。1.3.1 mysql-proxymysql-proxy是一個(gè)MySQL的代理服務(wù)器,用戶的請(qǐng)求先發(fā)向mysql-proxy,然后mysql-proxy對(duì)用戶的數(shù)據(jù)包進(jìn)行分析,從下一層的mysql 數(shù)據(jù)庫中選擇一臺(tái)數(shù)據(jù)庫,將用戶的

12、請(qǐng)求包交給mysql處理。首先MySQL Proxy 以服務(wù)器的身份接受客戶端的請(qǐng)求,根據(jù)相應(yīng)配置對(duì)這些請(qǐng)求進(jìn)行分析處理,然后以客戶端的身份轉(zhuǎn)發(fā)給相應(yīng)的后端數(shù)據(jù)庫服務(wù)器,再接受服務(wù)器的信息,然后返回給客戶端。所以MySQL Proxy需要同時(shí)實(shí)現(xiàn)客戶端和服務(wù)器的協(xié)議。由于要對(duì)客戶端發(fā)送過來的SQL語句進(jìn)行分析,還需要包含一個(gè)SQL解析器。MySQL Proxy通過使用lua腳本,來實(shí)現(xiàn)復(fù)雜的連接控制和過濾,從而實(shí)現(xiàn)讀寫分離和負(fù)載平衡。所以部署MySQL-Proxy需要安裝運(yùn)行Lua語言的環(huán)境。典型的MySQL-Proxy應(yīng)用為實(shí)現(xiàn)讀寫分離,如圖6-3-1所示。圖6-3-11.3.2 MySQL

13、主從復(fù)制(Master-Slave Replication)MySQL主從復(fù)制(Master-Slave Replication)是通過設(shè)置在Master MySQL上的binlog(使其處于打開狀態(tài)),Slave MySQL上通過一個(gè)I/O線程從Master MySQL上讀取binlog,然后傳輸?shù)絊lave MySQL的中繼日志中,然后Slave MySQL的SQL線程從中繼日志中讀取中繼日志,然后應(yīng)用到Slave MySQL的數(shù)據(jù)庫中。這樣實(shí)現(xiàn)了數(shù)據(jù)庫的復(fù)制功能。原理如圖6-3-2所示:圖6-3-2MySQL主從復(fù)制的作用如下:(1) 可以作為一種備份機(jī)制。(2) 可以用來做讀寫分離。1.3.3 MySQL主從復(fù)制結(jié)合MySQL Proxy實(shí)現(xiàn)讀寫分離通過使用MySQL-Proxy來作為代理服務(wù)器,配置MySQL Proxy,將所有的寫操作,分流到master MySQL上,所有的讀操作分流到slave M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論