用apache和tomcat搭建集群,實現(xiàn)負載均衡_第1頁
用apache和tomcat搭建集群,實現(xiàn)負載均衡_第2頁
用apache和tomcat搭建集群,實現(xiàn)負載均衡_第3頁
用apache和tomcat搭建集群,實現(xiàn)負載均衡_第4頁
用apache和tomcat搭建集群,實現(xiàn)負載均衡_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、用apache和tomcat搭建集群,實現(xiàn)負載均衡 一、集群和負載均衡的概念(一)集群的概念集群(Cluster)是由兩臺或多臺節(jié)點機(服務(wù)器)構(gòu)成的一種松散耦合的計算節(jié)點集合,為用戶提供網(wǎng)絡(luò)服務(wù)或應(yīng)用程序(包括數(shù)據(jù)庫、Web服務(wù)和文件服務(wù)等)的單一客戶視圖,同時提供接近容錯機的故障恢復(fù)能力。集群系統(tǒng)一般通過兩臺或多臺節(jié)點服務(wù)器系統(tǒng)通過相應(yīng)的硬件及軟件互連,每個群集節(jié)點都是運行其自己進程的獨立服務(wù)器。這些進程可以彼此通信,對網(wǎng)絡(luò)客戶機來說就像是形成了一個單一系統(tǒng),協(xié)同起來向用戶提供應(yīng)用程序、系統(tǒng)資源和數(shù)據(jù)。除了作為單一系統(tǒng)提供服務(wù),集群系統(tǒng)還具有恢復(fù)服務(wù)器級故障的能力。集群系統(tǒng)還可通過在集群中

2、繼續(xù)增加服務(wù)器的方式,從內(nèi)部增加服務(wù)器的處理能力,并通過系統(tǒng)級的冗余提供固有的可靠性和可用性。(二)集群的分類1、高性能計算科學集群:以解決復(fù)雜的科學計算問題為目的的IA集群系統(tǒng)。是并行計算的基礎(chǔ),它可以不使用專門的由十至上萬個獨立處理器組成的并行超級計算機,而是采用通過高速連接來鏈接的一組1/2/4 CPU的IA服務(wù)器,并且在公共消息傳遞層上進行通信以運行并行應(yīng)用程序。這樣的計算集群,其處理能力與真正超級并行機相等,并且具有優(yōu)良的性價比。2、負載均衡集群:負載均衡集群為企業(yè)需求提供更實用的系統(tǒng)。該系統(tǒng)使各節(jié)點的負載流量可以在服務(wù)器集群中盡可能平均合理地分攤處理。該負載需要均衡計算的應(yīng)用程序處

3、理端口負載或網(wǎng)絡(luò)流量負載。這樣的系統(tǒng)非常適合于運行同一組應(yīng)用程序的大量用戶。每個節(jié)點都可以處理一部分負載,并且可以在節(jié)點之間動態(tài)分配負載,以實現(xiàn)平衡。對于網(wǎng)絡(luò)流量也如此。通常,網(wǎng)絡(luò)服務(wù)器應(yīng)用程序接受了大量入網(wǎng)流量,無法迅速處理,這就需要將流量發(fā)送給在其它節(jié)點。負載均衡算法還可以根據(jù)每個節(jié)點不同的可用資源或網(wǎng)絡(luò)的特殊環(huán)境來進行優(yōu)化。3、高可用性集群:為保證集群整體服務(wù)的高可用,考慮計算硬件和軟件的容錯性。如果高可用性群集中的某個節(jié)點發(fā)生了故障,那么將由另外的節(jié)點代替它。整個系統(tǒng)環(huán)境對于用戶是一致的。實際應(yīng)用的集群系統(tǒng)中,這三種基本類型經(jīng)常會發(fā)生混合與交雜。(三)典型集群科學計算集群:1、Beow

4、ulf當談到 Linux 集群時,許多人的第一反映是 Beowulf。那是最著名的 Linux科學軟件集群系統(tǒng)。實際上,它是一組適用于在 Linux 內(nèi)核上運行的公共軟件包的通稱。其中包括流行的軟件消息傳遞 API,如“消息傳送接口”(MPI) 或“并行虛擬機”(PVM),對 Linux 內(nèi)核的修改,以允許結(jié)合幾個以太網(wǎng)接口、高性能網(wǎng)絡(luò)驅(qū)動器,對虛擬內(nèi)存管理器的更改,以及分布式進程間通信 (DIPC) 服務(wù)。公共全局進程標識空間允許使用 DIPC 機制從任何節(jié)點訪問任何進程。2、MOSIXBeowulf類似于給系統(tǒng)安裝的一個支持集群的外掛軟件,提供了應(yīng)用級的集群能力。而MOSIX是徹底修改Li

5、nux的內(nèi)核,從系統(tǒng)級提供了集群能力,它對應(yīng)用而言是完全透明的,原有的應(yīng)用程序,可以不經(jīng)改動,就能正常運行在MOSIX系統(tǒng)之上。集群中的任何節(jié)點都可以自由地加入和移除,來接替其它節(jié)點的工作,或是擴充系統(tǒng)。MOSIX 使用自適應(yīng)進程負載均衡和內(nèi)存引導算法使整體性能最大化。應(yīng)用程序進程可以在節(jié)點之間實現(xiàn)遷移,以利用最好的資源,這類似于對稱多處理器系統(tǒng)可以在各個處理器之間切換應(yīng)用程序。由于MOSIX通過修改內(nèi)核來實現(xiàn)集群功能,所以存在兼容性問題,部分系統(tǒng)級應(yīng)用程序?qū)o法正常運行。負載均衡/高可用性集群3、LVS(Linux Virtual Server)這是一個由國人主持的項目。它是一個負載均衡/高

6、可用性集群,主要針對大業(yè)務(wù)量的網(wǎng)絡(luò)應(yīng)用(如新聞服務(wù)、網(wǎng)上銀行、電子商務(wù)等)。LVS是建立在一個主控服務(wù)器(通常為雙機)(director)及若干真實服務(wù)器(real-server)所組成的集群之上。real-server 負責實際提供服務(wù),主控服務(wù)器根據(jù)指定的調(diào)度算法對real-server進行控制。而集群的結(jié)構(gòu)對于用戶來說是透明的,客戶端只與單個的IP(集群系統(tǒng)的虛擬IP)進行通信,也就是說從客戶端的視角來看,這里只存在單個服務(wù)器。N54537Real-server可以提供眾多服務(wù),如ftp, http, dns, telnet, nntp, smtp 等。主控服務(wù)器負責對Real-Serv

7、er進行控制??蛻舳嗽谙騆VS發(fā)出服務(wù)請求時,Director會通過特定的調(diào)度算法來指定由某個Real- Server來應(yīng)答請求,而客戶端只與Load Balancer的IP(即虛擬IP,VIP)進行通信。其他集群:現(xiàn)在集群系統(tǒng)可謂五花八門,絕大部分的OS開發(fā)商,服務(wù)器開發(fā)商都提供了系統(tǒng)級的集群產(chǎn)品,最典型的是各類雙機系統(tǒng),還有各類科研院校提供的集群系統(tǒng)。以及各類軟件開發(fā)商提供的應(yīng)用級別的集群系統(tǒng),如數(shù)據(jù)庫集群,Application Server 集群,Web Server集群,郵件集群等等。(四)負載均衡1、概念 由于目前現(xiàn)有網(wǎng)絡(luò)的各個核心部分隨著業(yè)務(wù)量的提高,訪問量和數(shù)據(jù)流量的快速增長,

8、其處理能力和計算強度也相應(yīng)地增大,使得單一的服務(wù)器設(shè)備根本無法承擔。在此情況下,如果扔掉現(xiàn)有設(shè)備去做大量的硬件升級,這樣將造成現(xiàn)有資源的浪費,而且如果再面臨下一次業(yè)務(wù)量的提升時,這又將導致再一次硬件升級的高額成本投入,甚至性能再卓越的設(shè)備也不能滿足當前業(yè)務(wù)量增長的需求。 針對此情況而衍生出來的一種廉價有效透明的方法以擴展現(xiàn)有網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性的技術(shù)就是負載均衡(Load Balance)。2、特點和分類 負載均衡(Server Load Balance)一般用于提高服務(wù)器的整體處理能力,并提高可靠性,可用性,可維護性,最終目的是加

9、快服務(wù)器的響應(yīng)速度,從而提高用戶的體驗度。 負載均衡從結(jié)構(gòu)上分為本地負載均衡(Local Server Load Balance)和地域負載均衡(Global Server Load Balance)(全局負載均衡),一是指對本地的服務(wù)器群做負載均衡,另一是指對分別放置在不同的地理位置、有不同的網(wǎng)絡(luò)及服務(wù)器群之間作負載均衡。地域負載均衡有以下的特點:(1)解決網(wǎng)絡(luò)擁塞問題,服務(wù)就近提供,實現(xiàn)地理位置無關(guān)性 (2)對用戶提供更好的訪問質(zhì)量 (3)提高服務(wù)器響應(yīng)速度 (4)提高服務(wù)器及其他資源的利用效率 (5)避免了數(shù)據(jù)中心單點失效3、負載均衡技術(shù)主要應(yīng)用 (1)DNS負載均衡最早的負載均衡技術(shù)是

10、通過DNS來實現(xiàn)的,在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的服務(wù)器,達到負載均衡的目的。DNS負載均衡是一種簡單而有效的方法,但是它不能區(qū)分服務(wù)器的差異,也不能反映服務(wù)器的當前運行狀態(tài)。 (2)代理服務(wù)器負載均衡 使用代理服務(wù)器,可以將請求轉(zhuǎn)發(fā)給內(nèi)部的服務(wù)器,使用這種加速模式顯然可以提升靜態(tài)網(wǎng)頁的訪問速度。然而,也可以考慮這樣一種技術(shù),使用代理服務(wù)器將請求均勻轉(zhuǎn)發(fā)給多臺服務(wù)器,從而達到負載均衡的目的。 (3)地址轉(zhuǎn)換網(wǎng)關(guān)負載均衡 支持負載均衡的地址轉(zhuǎn)換網(wǎng)關(guān),可以將一個外部IP地址映射為多個內(nèi)部IP地址,對每次TCP連接請求動態(tài)

11、使用其中一個內(nèi)部地址,達到負載均衡的目的。 (4)協(xié)議內(nèi)部支持負載均衡 除了這三種負載均衡方式之外,有的協(xié)議內(nèi)部支持與負載均衡相關(guān)的功能,例如HTTP協(xié)議中的重定向能力等,HTTP運行于TCP連接的最高層。 (5)NAT負載均衡 NAT(Network Address Translation 網(wǎng)絡(luò)地址轉(zhuǎn)換)簡單地說就是將一個IP地址轉(zhuǎn)換為另一個IP地址,一般用于未經(jīng)注冊的內(nèi)部地址與合法的、已獲注冊的Internet IP地址間進行轉(zhuǎn)換。適用于解決Internet IP地址緊張、不想讓網(wǎng)絡(luò)外部知道內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)等的場合下。 (6)反向代理負載均衡普通代理方式是代理內(nèi)部網(wǎng)絡(luò)用戶訪問internet上

12、服務(wù)器的連接請求,客戶端必須指定代理服務(wù)器,并將本來要直接發(fā)送到internet上服務(wù)器的連接請求發(fā)送給代理服務(wù)器處理。反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給 internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個服務(wù)器。反向代理負載均衡技術(shù)是把將來自internet上的連接請求以反向代理的方式動態(tài)地轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的多臺服務(wù)器進行處理,從而達到負載均衡的目的。 (7)混合型負載均衡在有些大型網(wǎng)絡(luò),由于多個服務(wù)器群內(nèi)硬件設(shè)備、各自的規(guī)模、提供的服務(wù)等的差異,我們

13、可以考慮給每個服務(wù)器群采用最合適的負載均衡方式,然后又在這多個服務(wù)器群間再一次負載均衡或群集起來以一個整體向外界提供服務(wù)(即把這多個服務(wù)器群當做一個新的服務(wù)器群),從而達到最佳的性能。我們將這種方式稱之為混合型負載均衡。此種方式有時也用于單臺均衡設(shè)備的性能不能滿足大量連接請求的情況下。二、搭建集群和實現(xiàn)負載平衡(一)前期準備我的系統(tǒng)用的是windowsXP專業(yè)版,我要做的是,用一個apache和多個(這里以兩個作為示例)tomcat,通過jk方式,構(gòu)造一個集群。以下是要首先準備的東西:1、jdk,我用的版本是jdk1.5.0_06,下載地址是16/ECom/

14、EComTicketServlet/BEGIND597A309654D73D910E051D73D539D5F/-2147483648/2438196255/1/852050/851882/2438196255/2ts+/westCoastFSEND/jdk-1.5.0_13-oth-JPR/jdk-1.5.0_13-oth-JPR:3/jdk-1_5_0_13-windows-i586-p.exe2、apache,我用的版本是2.2.4,下載地址是/httpd/binaries/win32/apache_2.2.4-win32-x86-opens

15、sl-0.9.8d.msi3、tomcat,我用的版本是5.5的解壓版本,這里要注意:不能用安裝的版本,因為一臺機器上裝兩個一樣的tomcat,是會出錯誤的。下載地址是4、jk,這個jk的版本,本來有兩個的,但是版本2已經(jīng)被廢棄掉了,目前可用的jk版本是1.2.25。每個apache的版本,都會有一個特定的jk與之對應(yīng),所以這里要用的jk也必須是為apache-2.2.4開發(fā)的那個才行。它的下載地址是/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.25/mod_jk-apache-2.2.4

16、.so有了這四樣東西,我們就可以開始做集群了。(二)安裝1、相信需要看這篇文章的人,JDK的安裝一定不會陌生,這里不在贅述。只是需要提醒一下:環(huán)境變量別忘記配置了。2、安裝apache也沒有什么難度,就是在安裝過程中要配置域名、網(wǎng)址和管理員郵箱之類的信息,這個信息完全可以按照提示,然后修改下填入即可,之后想修改的話直接到配置文件中改就行了。除了這個地方,還要保證機器上的80端口沒有被其他程序占用。至于安裝路徑,完全取決于個人愛好。其他的默認就行了。安裝成功后,系統(tǒng)右下角的托盤區(qū)會有個圖標,我們可以通過這個啟動apache,如果那個小紅點變成綠色,說明服務(wù)已經(jīng)正常啟動了(如果服務(wù)沒有啟動起來,說

17、明安裝過程中的配置有錯誤,建議卸載后重裝)。如果按照默認,端口是80的話,那打開瀏覽器,輸入:http:/localhost/,應(yīng)該可以看到 " It works “的字樣。這樣就可以進入下一步了。3、解壓縮tomcat,記得要做兩份。這里不妨將兩個tomcat命名為:tomcat- 5.5.25_1和tomcat-5.5.25_2,其實這兩個文件夾中的東西是完全一樣的。但是我為了在同一臺機器上做集群,那就要保證兩個 tomcat運行起來不會在端口上起沖突。進入tomcat-5.5.25_1/conf目錄,用文本編輯器打開并修改server.xml,將該 tomcat的默認8080端

18、口改為8088(其實沒必要改,我改這個是因為我機器上還有其他tomcat占用著8080端口)。然后進入tomcat- 5.5.25_2/conf目錄,同樣將8080修改掉,至于改成多少沒多大關(guān)系,只要不占用其他程序的端口,應(yīng)該不會出什么問題。這樣,tomcat就算安裝好了。4、jk這東西是一個連接模塊,不用安裝,直接將mod_jk-apache-2.2.4.so這個文件拷貝到apache安裝目錄下的modules文件夾下面就行了。這樣,安裝完成,下面開始配置。(三)配置這個地方才是搭建集群的關(guān)鍵所在,我也會盡我的可能寫的詳細點。1、配置tomcat為防止沖突,進入第二個tomcat主目錄,然后

19、進入conf目錄,打開server.xml修改配置。主要是修改端口,我這里把所有的端口信息,都在原有基礎(chǔ)上加1000,即原端口是8009,我改為9009。當然,你不必和我一樣,只要保證不沖突就 OK!這些配置在apache的配置中可能會用到。2、配置apache(1)進入apache的主目錄,然后進入conf文件夾,用文本編輯器打開httpd.conf,在該文件末尾加上如下幾行:# 加載 mod_jk 模塊LoadModule jk_module modules/mod_jk-apache-2.2.4.so# 配置 mod_jkJkWorkersFile conf/per

20、ties #加載集群中的workersJkMountFile conf/perties #加載workers的請求處理分配文件JkLogFile logs/mod_jk.log #指定jk的日志輸出文件JkLogLevel warn #指定日志級別(2)不要改變目錄,新建一個文件:perties,該文件用來配置web容器的信息。該文件的內(nèi)容如下:# worker列表worker.list=controller, status#第一個server的配置,server名為s1#ajp13 端口號,在tomcat下server.xml配置,默認8

21、009worker.s1.port=8009#tomcat的主機地址,如不為本機,請?zhí)顚慽p地址worker.s1.host=localhostworker.s1.type=ajp13#server的加權(quán)比重,值越高,分得的請求越多worker.s1.lbfactor=1#第二個server的配置,server名為s2worker.s2.port=9009worker.s2.host=localhostworker.s2.type=ajp13worker.s2.lbfactor=1#server名為controller,用于負載均衡worker.controller.type=lbworker.retries=3 #重試次數(shù)#指定分擔請求的server列表,用逗號分隔worker.controller.balanced_workers=s1,s2#設(shè)置用于負載均衡的server的session可否共享 有不少文章說設(shè)置為1是可以的,但是我是設(shè)置為0才可以的worker.controller.sticky_session=0#worker.controller.sticky_session_force=1worker.status.ty

溫馨提示

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

評論

0/150

提交評論