負(fù)載均衡系統(tǒng)的結(jié)構(gòu)介紹
通過我們一些列的知識介紹,現(xiàn)在對于整體的系統(tǒng)結(jié)構(gòu),也就是負(fù)載均衡系統(tǒng)可能有些朋友還不是很清楚。現(xiàn)在我們針對這個(gè)問題進(jìn)行一個(gè)總結(jié)和介紹。首先我們要對集群有一個(gè)認(rèn)識,然后是對整體系統(tǒng)結(jié)構(gòu)的認(rèn)識。
負(fù)載均衡系統(tǒng)搭建
集群技術(shù)是目前非常流行的提高系統(tǒng)服務(wù)能力與高可靠性(HA-HighAvailability)的手段,通過把多個(gè)獨(dú)立的服務(wù)器組成一個(gè)集群可以實(shí)現(xiàn)失效無縫轉(zhuǎn)移。也就是說當(dāng)有某一臺集群中的服務(wù)器當(dāng)機(jī)后,其上的用戶狀態(tài)數(shù)據(jù)可以無縫遷移到集群中的其他服務(wù)器上。這樣,正在使用應(yīng)用的客戶可以完全感覺不到影響,大大提供了系統(tǒng)的可靠性。
集群有很多種類和層次,例如:操作系統(tǒng)集群(如Linux、Solaris等),數(shù)據(jù)庫集群(如DB2、Oracle等),應(yīng)用服務(wù)器集群(如GlassFish、WebLogic等),Web集群(如Tomcat等)。本教程將向讀者介紹由GlassFish搭建的應(yīng)用服務(wù)器集群以及由Tomcat搭建的Web集群。
不管是由什么技術(shù)搭建的集群,負(fù)載均衡系統(tǒng)其基本組成由:
每個(gè)集群都需要一個(gè)負(fù)載均衡器,其負(fù)責(zé)根據(jù)一定的算法將外界發(fā)送到集群的請求盡量均勻地分配到集群中的每個(gè)服務(wù)器,使得集群中所有服務(wù)器的負(fù)載盡量平衡。對外界的客戶端而言其并不知道具體訪問了集群中的哪臺服務(wù)器,多臺服務(wù)器從邏輯上對外界而言可以看作一臺“大"服務(wù)器。這樣,當(dāng)集群的服務(wù)能力不能滿足當(dāng)前的需要時(shí),可以非常方便地再向集群中添加新的服務(wù)器來滿足需要。可以看出,使用了集群之后,系統(tǒng)具有非常好的可擴(kuò)展性。
當(dāng)不幸集群中有某臺服務(wù)器突然當(dāng)機(jī)時(shí),負(fù)載均衡系統(tǒng)中其用戶狀態(tài)數(shù)據(jù)可以遷移到其他服務(wù)器上,不影響在線用戶的使用。這樣,通過使用集群技術(shù)可以方便地實(shí)現(xiàn)系統(tǒng)的高可靠性。
本教程中將介紹的使用Tomcat搭建的Web集群結(jié)構(gòu):
集群的負(fù)載均衡器由開源的Apache服務(wù)器擔(dān)任,集群中的Web服務(wù)器由兩個(gè)Tomcat服務(wù)器分別擔(dān)任,后臺的數(shù)據(jù)庫服務(wù)器由一個(gè)MySQL服務(wù)器擔(dān)任。
在Tomcat中搭建集群負(fù)載均衡系統(tǒng)
Tomcat的安裝后,就可以開始搭建Tomcat集群了,具體步驟如下:
(1)將系統(tǒng)根目錄(/)下的“apache-tomcat-6.0.14"的文件夾改名為“TC6_A"。
提示:進(jìn)行上述步驟操作的原因是,本案例中集群的各個(gè)負(fù)載均衡Tomcat服務(wù)器實(shí)例運(yùn)行在同一個(gè)物理服務(wù)器上,因此集群中有幾個(gè)Tomcat實(shí)例一般就需要幾個(gè)Tomcat的安裝。另外,由于集群中的各個(gè)Tomcat實(shí)例位于同一個(gè)物理服務(wù)器上的一個(gè)操作系統(tǒng)下,因此各個(gè)實(shí)例占用的各種網(wǎng)絡(luò)端口不能相同,否則集群中的多個(gè)Tomcat實(shí)例不能同時(shí)正常啟動,下面的步驟將介紹如何修改Tomcat實(shí)例需要使用的各個(gè)網(wǎng)絡(luò)端口。
(4)打開“TC6_A"文件夾下“conf"文件夾下的“server.xml"文件以及“TC6_B"文件夾下“conf"文件夾下的“server.xml"文件。
說明:由于Apache作為Tomcat集群的負(fù)載均衡器,使用的是輪換算法,其均勻地將請求發(fā)送到集群中的各個(gè)Tomcat實(shí)例。因此,是輪換訪問兩個(gè)不同Tomcat實(shí)例中的Hello.jsp頁面的。當(dāng)然,看到輪換的情況也就說明Apache負(fù)載均衡器正常工作了。
負(fù)載均衡系統(tǒng)中的壓力測試
Apache不但是一款非常優(yōu)秀的開源HTTP服務(wù)器,在安裝后其還自帶了一個(gè)非常方便的集群壓力測試工具ab。所謂對集群的壓力測試就是在同一時(shí)間段內(nèi)向集群集中發(fā)送一批請求,看集群的響應(yīng)情況。根據(jù)響應(yīng)的情況可以看出集群的配置是否優(yōu)良,是否能滿足業(yè)務(wù)負(fù)載的需要。下面就向讀者介紹ab壓力測試工具的使用,步驟如下:
(1)在終端中鍵入如下命令對Tomcat集群進(jìn)行壓力測試。
cd/usr/local/apache2/bin
./ab–n200–c20
說明:“ab"命令中“-n"后的參數(shù)表示對Tomcat集群發(fā)送請求的次數(shù),“-c"后的參數(shù)表示每一次并發(fā)發(fā)送請求的數(shù)量。
(2)在執(zhí)行完上述命令后,系統(tǒng)會以文本方式顯示測試的結(jié)果