本站不再更新,歡迎光臨 java開發技術網
          隨筆-230  評論-230  文章-8  trackbacks-0
             在企業級應用中,采用Tomcat作為應用服務器的系統不在少數,但是Tomcat作為輕量級應用服務器,它的負載能力確實有限,在系統上線后不堪重負,這時候人們都會想起集群來,可惜以往的版本做起集群來,實在不方便得很。
                Tomcat5.5在這方面作了很大的改進,我們首先可以實現Tomcat5.5的集群。
           
          一、配置Tomcat
          1、直接將下載的apache-tomcat-5.5.17.zip解壓縮到一個驅動器根目錄下,將目錄名改為Tomcat5517_S1,作為集群的第一個Tomcat服務器。
          2、刪除Tomcat5517_S1\ webapps、Tomcat5517_S1\temp下的所有內容。
          3、在Tomcat5517_S1\conf\Catalina\localhost下建立ROOT.xml文件(注意:一定要用ROOT.xml這個文件名)。添加內容:
          <Context path="" docBase="發布路徑" displayName="Tomcat_1"
            debug="0" privileged="true">
           
              <!-- Default set of monitored resources -->
              <WatchedResource>WEB-INF/web.xml</WatchedResource>
          </Context>
           
          4、確認你的應用發布沒有問題的情況下,運行Tomcat5517_S1\bin中的Startup.bat。
          5、在瀏覽器中訪問:http://localhost:8080,你的應用應該可以在此Tomcat中成功發布了。
          這里要注意的是:
          如果你的系統中使用了Taglib尤其是c.tld,請下載最新版本的jakarta-taglibs-standard-1.1.2.zip,從中取得standard.jar、jstl.jar和c.tld,放在相應的目錄下,然后修改web.xml:
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
           
          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
              version="2.4">
          </web-app>
           
          其中所有的
            <taglib>
              <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
              <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
            </taglib>
           
          要放在<jsp-config>元素中,像這樣:
          <jsp-config>
             <taglib>
               <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
               <taglib-location>/WEB-INF/struts-template.tld</taglib-location>
             </taglib>
             <taglib>
          <taglib-uri>/WEB-INF/c.tld</taglib-uri>
          <taglib-location>/WEB-INF/c.tld</taglib-location>
             </taglib>
          </jsp-config>

          二、配置同一臺機器中的Tomcat集群
          1、將Tomcat5517_S1\ Catalina文件夾改名為Tomcat5517_S1\ Standalone,然后打開Tomcat5517_S1\conf\server.xml,修改幾個關鍵的地方。
          ★ 遠程關閉Tomcat的服務端口,原來是8005,改為10005。
          ★ 兩個對外服務的Connector的端口:Http協議端口原來是8080,改為10001;AJP1.3協議端口原來是8009,改為10009。(這 里要注意的是在開始的調試階段我們保持http協議端口的打開狀態,用于瀏覽器直接與此Tomcat連接,等到調試成功后,所有的客戶端只允許通過 apache訪問,我們就要將提供Http協議的Connector關掉。)其中的redirectPort我都改成了10043。
          ★ 將原來的:<Engine name="Catalina" defaultHost="localhost">注釋掉,打開它上面的:<Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat1">,并且將jvmRoute的值改為Tomcat1。
          ★ 打開Cluster元素的注釋,并且將Receiver元素的監聽端口tcpListenPort改為10011。
          2、修改Web.xml,加上<distributable/>,如下:
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
           
          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
           version="2.4">
           <distributable/>
          </web-app>
           
          然后啟動此Tomcat,可以看到有這樣的提示信息:
          2006-6-28 13:33:57 org.apache.catalina.cluster.tcp.SimpleTcpCluster start
          信息: Cluster is about to start
          2006-6-28 13:33:57 org.apache.catalina.cluster.tcp.ReplicationTransmitter start
          信息: Start ClusterSender at cluster Standalone:type=Cluster,host=localhost with name Standalone:type=ClusterSender,host=localhost
          2006-6-28 13:33:57 org.apache.catalina.cluster.mcast.McastService start
          信息: Sleeping for 2000 milliseconds to establish cluster membership
          2006-6-28 13:33:59 org.apache.catalina.cluster.mcast.McastService registerMBean
          信息: membership mbean registered (Standalone:type=ClusterMembership,host=localhost)
          2006-6-28 13:33:59 org.apache.catalina.cluster.deploy.FarmWarDeployer start
          信息: Cluster FarmWarDeployer started.
          2006-6-28 13:34:30 org.apache.coyote.http11.Http11BaseProtocol start
          信息: Starting Coyote HTTP/1.1 on http-10001
          2006-6-28 13:34:30 org.apache.jk.common.ChannelSocket init
          信息: JK: ajp13 listening on /0.0.0.0:10009
          2006-6-28 13:34:30 org.apache.jk.server.JkMain start
          信息: Jk running ID=0 time=0/141  config=null
           
          這表示Tomcat集群正常啟動了。
          3、復制Tomcat5517_S1文件夾,并更名為Tomcat5517_S2;然后修改Tomcat5517_S1\conf\server.xml,修改內容同上,要注意的是端口的修改:
          ★ 遠程關閉Tomcat的服務端口,原來是8005,改為20005。
          ★ 兩個對外服務的Connector的端口:Http協議端口原來是8080,改為20001;AJP1.3協議端口原來是8009,改為20009。其中的redirectPort我都改成了20043。
          ★ 將原來的:<Engine name="Catalina" defaultHost="localhost">注釋掉,打開它上面的:<Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat2">,并且將jvmRoute的值改為Tomcat2。
          ★ 打開Cluster元素的注釋,并且將Receiver元素的監聽端口tcpListenPort改為20011。
          啟動Tomcat2,可以看到有如下提示:
          在Tomcat1中:
          2006-6-28 14:25:46 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
          信 息: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.192:20011,catalina,192.168.1.192,20011, alive=40]
           
          在Tomcat2中:
          2006-6-28 14:25:44 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
          信 息: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.192:10011,catalina,192.168.1.192,10011, alive=3105085]
           
          這表示兩個Tomcat已經建立了集群,并保持Session同步了

          三、配置Apache

          Apache2.2提供了最新的mod_proxy_balancer模塊,這是我們這次實踐過程中完成負載均衡的利器。安裝完Apache之后,直接打開conf\httpd.conf文件:

          ★ 打開必要的模塊:
          LoadModule proxy_module modules/mod_proxy.so
          LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
          LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
          LoadModule proxy_http_module modules/mod_proxy_http.so

          ★ 在httpd.conf的最后加上:

          ProxyRequests Off

          ProxyPass / balancer://myCluster/
          <Proxy balancer://myCluster/>
                 BalancerMember ajp://localhost:10009 route=Tomcat1
                 BalancerMember ajp://localhost:20009 route=Tomcat2
          </Proxy>

          然后啟動apache,開始測試你的應用在集群環境下的表現吧!

           


          posted on 2007-08-03 23:53 有貓相伴的日子 閱讀(1587) 評論(0)  編輯  收藏 所屬分類: j2ee
          本站不再更新,歡迎光臨 java開發技術網
          主站蜘蛛池模板: 岢岚县| 襄樊市| 盐城市| 海晏县| 大悟县| 巴南区| 新宁县| 成武县| 巨野县| 黄骅市| 东安县| 永和县| 威海市| 旬阳县| 宣化县| 苍溪县| 中宁县| 西城区| 大连市| 北票市| 准格尔旗| 黄冈市| 嘉荫县| 额济纳旗| 邢台县| 梁河县| 平江县| 黄冈市| 隆尧县| 甘谷县| 衡阳县| 永康市| 布尔津县| 翁源县| 昌黎县| 罗甸县| 秦皇岛市| 沾化县| 琼结县| 万全县| 明水县|