Tomcat6集群和負載均衡_第1頁
Tomcat6集群和負載均衡_第2頁
Tomcat6集群和負載均衡_第3頁
Tomcat6集群和負載均衡_第4頁
Tomcat6集群和負載均衡_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、集群背景介紹1.1 術(shù)語定義服務(wù)軟體是b/s或c/s結(jié)構(gòu)的s部分,是為b或c提供服務(wù)的服務(wù)性軟件系統(tǒng)。 服務(wù)硬體指提供計算服務(wù)的硬件、比如pc機、pc服務(wù)器。 服務(wù)實體通指服務(wù)軟體和服務(wù)硬體。 客戶端指接受服務(wù)實體服務(wù)的軟件或硬件。 1.2 兩大關(guān)鍵特性集群是一組協(xié)同工作的服務(wù)實體,用以提供比單一服務(wù)實體更具擴展性與可用性的服務(wù)平臺。在客戶端看來,一個集群就象是一個服務(wù)實體,但事實上集群由一組服務(wù)實體組成。與單一服務(wù)實體相比較,集群提供了以下兩個關(guān)鍵特性: 可擴展性集群的性能不限于單一的服務(wù)實體,新的服務(wù)實體可以動態(tài)地加入到集群,從而增強集群的性能。 高可用性集群通過服務(wù)實體冗余使客戶端免于輕

2、易遇到out of service的警告。在集群中,同樣的服務(wù)可以由多個服務(wù)實體提供。如果一個服務(wù)實體失敗了,另一個服務(wù)實體會接管失敗的服務(wù)實體。集群提供的從一個出錯的服務(wù)實體恢復(fù)到另一個服務(wù)實體的功能增強了應(yīng)用的可用性。 1.3 兩大能力為了具有可擴展性和高可用性特點,集群的必須具備以下兩大能力: 負載均衡負載均衡能把任務(wù)比較均衡地分布到集群環(huán)境下的計算和網(wǎng)絡(luò)資源。 錯誤恢復(fù)由于某種原因,執(zhí)行某個任務(wù)的資源出現(xiàn)故障,另一服務(wù)實體中執(zhí)行同一任務(wù)的資源接著完成任務(wù)。這種由于一個實體中的資源不能工作,另一個實體中的資源透明的繼續(xù)完成任務(wù)的過程叫錯誤恢復(fù)。 負載均衡和錯誤恢復(fù)都要求各服務(wù)實體中有執(zhí)行

3、同一任務(wù)的資源存在,而且對于同一任務(wù)的各個資源來說,執(zhí)行任務(wù)所需的信息視圖(信息上下文)必須是一樣的。 1.4 兩大技術(shù)實現(xiàn)集群務(wù)必要有以下兩大技術(shù): 集群地址集群由多個服務(wù)實體組成,集群客戶端通過訪問集群的集群地址獲取集群內(nèi)部各服務(wù)實體的功能。具有單一集群地址(也叫單一影像)是集群的一個基本特征。維護集群地址的設(shè)置被稱為負載均衡器。負載均衡器內(nèi)部負責(zé)管理各個服務(wù)實體的加入和退出,外部負責(zé)集群地址向內(nèi)部服務(wù)實體地址的轉(zhuǎn)換。有的負載均衡器實現(xiàn)真正的負載均衡算法,有的只支持任務(wù)的轉(zhuǎn)換。只實現(xiàn)任務(wù)轉(zhuǎn)換的負載均衡器適用于支持ACTIVE-STANDBY的集群環(huán)境,在那里,集群中只有一個服務(wù)實體工作,當(dāng)

4、正在工作的服務(wù)實體發(fā)生故障時,負載均衡器把后來的任務(wù)轉(zhuǎn)向另外一個服務(wù)實體。 內(nèi)部通信為了能協(xié)同工作、實現(xiàn)負載均衡和錯誤恢復(fù),集群各實體間必須時常通信,比如負載均衡器對服務(wù)實體心跳測試信息、服務(wù)實體間任務(wù)執(zhí)行上下文信息的通信。 具有同一個集群地址使得客戶端能訪問集群提供的計算服務(wù),一個集群地址下隱藏了各個服務(wù)實體的內(nèi)部地址,使得客戶要求的計算服務(wù)能在各個服務(wù)實體之間分布。內(nèi)部通信是集群能正常運轉(zhuǎn)的基礎(chǔ),它使得集群具有均衡負載和錯誤恢復(fù)的能力。 (一)環(huán)境說明(二)安裝過程(1)在三臺要安裝tomcat的服務(wù)器上先安裝jdk(2)配置jdk的安裝路徑,在環(huán)境變量path中加入jdk的bin路徑,新

5、建環(huán)境變量JAVA_HOME指向jdk的安裝路徑(3)在三臺要安裝tomcat的服務(wù)器上分別安裝tomcat,調(diào)試三個tomcat到能夠正常啟動(4)tomcat的默認WEB服務(wù)端口是8080,默認的模式是單獨服務(wù),我的三個tomcat的WEB服務(wù)端口修改為7080/8888/9999修改位置為tomcat的安裝目錄下的conf/server.xml修改前的配置為     <Connector port="8080" maxHttpHeaderSize="8192"   

6、0;            maxThreads="150" minSpareThreads="25" maxSpareThreads="75"                enableLookups="false" redirectPort="8

7、443" acceptCount="100"                connectionTimeout="20000" disableUploadTimeout="true" />修改后的配置為     <Connector port="7080" maxHttpHeaderSize="8

8、192"                maxThreads="150" minSpareThreads="25" maxSpareThreads="75"                enableLookups="f

9、alse" redirectPort="8443" acceptCount="100"                connectionTimeout="20000" disableUploadTimeout="true" />依次修改每個tomcat的監(jiān)聽端口(7080/8888/9999)(5)分別測試每個tomcat的啟動是否正常http:/1

10、:7080:8888:9999/(三)負載均衡配置過程(1)在那臺要安裝apache的服務(wù)器上安裝apache2.0.55,我的安裝路徑為默認C:Program FilesApache GroupApache2(2)安裝后測試apache能否正常啟動,調(diào)試到能夠正常啟動8(3)下載jk2.0.4后解壓縮文件(4)將解壓縮后的目錄中的modules目錄中的mod_jk2.so文件復(fù)制到apache的安裝目錄下的modules目錄中,我的為C:Program FilesApac

11、he GroupApache2modules(5)修改apache的安裝目錄中的conf目錄的配置文件httpd.conf,在文件中加LoadModule模塊配置信息的最后加上一句LoadModule jk2_module modules/mod_jk2.so(6)分別修改三個tomcat的配置文件conf/server.xml,修改內(nèi)容如下修改前     <!- An Engine represents the entry point (within Catalina) that processes    

12、      every request.   The Engine implementation for Tomcat stand alone          analyzes the HTTP headers included with the request, and passes them          on to the approp

13、riate Host (virtual host). ->     <!- You should set jvmRoute to support load-balancing via AJP ie :     <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">        

14、;      ->               <!- Define the top level container in our container hierarchy ->     <Engine name="Catalina" defaultHost="localhost">修改后  

15、;   <!- An Engine represents the entry point (within Catalina) that processes          every request.   The Engine implementation for Tomcat stand alone          analyzes the HTTP headers

16、 included with the request, and passes them          on to the appropriate Host (virtual host). ->     <!- You should set jvmRoute to support load-balancing via AJP ie :->     <Engine name="Standalo

17、ne" defaultHost="localhost" jvmRoute="tomcat1">                            <!- Define the top level container in our container hierarc

18、hy      <Engine name="Catalina" defaultHost="localhost">     ->將其中的jvmRoute="jvm1"分別修改為jvmRoute="tomcat1"和jvmRoute="tomcat2"和jvmRoute="tomcat3"(7)然后重啟三個tomcat,調(diào)試能夠正常啟動。(8)在apache的安裝目錄中的conf目錄

19、下創(chuàng)建文件pertie,寫入文件內(nèi)容如下# fine the communication channel channel.socket::8009 info=Ajp13 forwarding over socket#配置第一個服務(wù)器 tomcatId=tomcat1 #要和tomcat的配置文件server.xml中的jvmRoute="tomcat1"名稱一致debug=0 lb_factor=1 #負載平衡因子,數(shù)字越大請求被分配的幾率越高# Define the communication channel channel.

20、socket::8009 info=Ajp13 forwarding over sockettomcatId=tomcat2 debug=0 lb_factor=1 # Define the communication channel channel.socket::8009 info=Ajp13 forwarding over sockettomcatId=tomcat3 debug=0 lb_factor=1 status: info=Status worker, displays runtime information.  

21、uri:/jkstatus.jsp info=Display status information and checks the config file for changes. group=status: uri:/* info=Map the whole webapp debug=0<% page contentType="text/html; charset=GBK" %><% page import="java.util.*" %><html><head><title>Cluster A

22、pp Test</title></head><body>Server Info:<%out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%><%   out.println("<br> ID " + session.getId()+"<br>");   / 如果有新的 Session 屬性

23、設(shè)置   String dataName = request.getParameter("dataName");   if (dataName != null && dataName.length() > 0)       String dataValue = request.getParameter("dataValue");      session.setAttribute(dataNam

24、e, dataValue);      out.print("<b>Session 列表</b>");   Enumeration e = session.getAttributeNames();   while (e.hasMoreElements()       String name = (String)e.nextElement();      String val

25、ue = session.getAttribute(name).toString();      out.println( name + " = " + value+"<br>");          System.out.println( name + " = " + value);    %>   <form actio

26、n="index.jsp" method="POST">     名稱:<input type=text size=20 name="dataName">      <br>     值:<input type=text size=20 name="dataValue">      <br&

27、gt;     <input type=submit>    </form></body></html>(10)重啟apache服務(wù)器和三個tomcat服務(wù)器,到此負載 均衡已配置完成。測試負載均衡先測試apache,訪問8/jkstatus.jsp能否正常訪問,并查詢其中的內(nèi)容,有三個tomcat的相關(guān)配置信息和負載說明,訪問8/TomcatDemo/index.jsp看能夠運行,能運行,則已建立負載均衡。(

28、四)tomcat集群配置(1)負載均衡配置的條件下配置tomcat集群(2)分別修改三個tomcat的配置文件conf/server.xml,修改內(nèi)容如下修改前        <!-          <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"      

29、60;           managerClassName="org.apache.catalina.cluster.session.DeltaManager"                  expireSessionsOnShutdown="false"  &#

30、160;               useDirtyFlag="true"                  notifyListenersOnReplication="true">     

31、        <Membership                  className="org.apache.catalina.cluster.mcast.McastService"             

32、;    mcastAddr=""                 mcastPort="45564"                 mcastFrequency="500&quo

33、t;                 mcastDropTime="3000"/>             <Receiver              &#

34、160;   className="org.apache.catalina.cluster.tcp.ReplicationListener"                 tcpListenAddress="auto"             &#

35、160;   tcpListenPort="4001"                 tcpSelectorTimeout="100"                 tcpThreadCount="6&qu

36、ot;/>             <Sender                 className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"      

37、           replicationMode="pooled"                 ackTimeout="5000"/>             <

38、;Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"                    filter=".*.gif;.*.js;.*.jpg;.*.png;.*.htm;.*.html;.*.css;.*.txt;"/>    

39、0;                           <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"         &#

40、160;             tempDir="/tmp/war-temp/"                       deployDir="/tmp/war-deploy/"   

41、                    watchDir="/tmp/war-listen/"                       watchEnabled=&q

42、uot;false"/>                                   <ClusterListener className="org.apache.catalina.cluster.session.Clu

43、sterSessionListener"/>         </Cluster>         ->   修改后        <!- modify by whh ->         <Cluster

44、className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"                  managerClassName="org.apache.catalina.cluster.session.DeltaManager"        &#

45、160;         expireSessionsOnShutdown="false"                  useDirtyFlag="true"            &

46、#160;     notifyListenersOnReplication="true">             <Membership                  className="org.apache.catalina.

47、cluster.mcast.McastService"                 mcastAddr=""                 mcastPort="45564"  

48、0;              mcastFrequency="500"                 mcastDropTime="3000"/>         

49、60;   <Receiver                  className="org.apache.catalina.cluster.tcp.ReplicationListener"                 tcpL

50、istenAddress="auto"                 tcpListenPort="4001"                 tcpSelectorTimeout="100"  &

51、#160;              tcpThreadCount="6"/>             <Sender                 cla

52、ssName="org.apache.catalina.cluster.tcp.ReplicationTransmitter"                 replicationMode="pooled"                

53、 ackTimeout="5000"/>             <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"                   

54、 filter=".*.gif;.*.js;.*.jpg;.*.png;.*.htm;.*.html;.*.css;.*.txt;"/>                                <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"                       tempDi

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論