wuxiren123

          FineReport如何部署Tomcat服務器集群

          環境準備

          Tomcat服務器集群中需要進行環境準備:

          •  ApacheApachehttp服務器,利用其對Tomcat進行負載均衡,這里使用的版本是Apache HTTP Server2.0.64
          • TmocatTmocat7.0.6
          •  JKJKTmocat提供給http服務器的插件,這里使用的版本是tmocat-connectors-1.2.37-windows-i386-httpd-2.0.x
          •  系統win7

          軟件安裝

          Apache

          下載完成之后,直接安裝apache,安裝完成之后,在瀏覽器中輸入http://localhost/,能夠看到下圖則說明安裝成功:


          Tomcat

          解壓下載好的tomcat縮包,復制三份解壓好的tomcat文件夾,分別重命名為tomcat1tomcat2tomcat3

          配置過程

          Apache配置修改

          修改httpd.conf,找到conf目錄下的httpd.cof,在文件的最后一行添加:

          include "C:\Program Files (x86)\Apache Group\Apache2\conf\mod_jk.conf"

          新建mod_jk.conf文件,在conf目錄下新建mod_jk.conf文件,內容如下:

          LoadModule jk_module modules/mod_jk.so

          JkWorkersFile conf/workers.properties

          JkMount /*.jsp controller

          解壓下載的jk文件,將里面的so文件復制到Apache安裝目錄的modules目錄下,這里下載的jk文件名為mod-jk.so。新建并編輯workers.properties文件。在conf文件夾下新建worker.properties,內容如下:

          #server

          worker.list = controller

          #========tomcat1========

          worker.tomcat1.port=11009

          worker.tomcat1.host=localhost

          worker.tomcat1.type=ajp13

          worker.tomcat1.lbfactor = 1

          #========tomcat2========

          worker.tomcat2.port=12009

          worker.tomcat2.host=localhost

          worker.tomcat2.type=ajp13

          worker.tomcat2.lbfactor = 1

          #========tomcat3========

          worker.tomcat3.port=13009

          worker.tomcat3.host=localhost

          worker.tomcat3.type=ajp13

          worker.tomcat3.lbfactor = 1

           

          #========controller,負載均衡控制器========

          worker.controller.type=lb

          worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3

          worker.controller.sticky_session=false

          worker.controller.sticky_session_force=1

          #worker.controller.sticky_session=1

          如果需要配置遠程的tomcat服務器的話,只需要將worker.tomcat3.host=localhost中的localhost改為遠程服務器的IP地址即可。本次配置都是本地的tomcat,并且在一臺機器上,所以端口號都不相同,如果在不同服務器上,端口號則不需要更改。

          Tomcat配置

          修改之前復制好的三份tmocat中的server.xml配置,打開conf/server.xml文件,修改如下圖:

          tomcat1:

           


          Tomcat2:

           

          Tomcat3:

           


          結果測試

          tomcat下面的項目文件夾中修改web.xml,如這里使用test項目,則修改三個tomcat下面的test項目中的web.xml,在每個web.xml<display-name>節點后添加新的節點<distributable/>。在每個test項目文件夾下新建test.jsp,內容如下:

          <%@ page contentType="text/html; charset=GBK" %>

          <%@ page import="Java.util.*" %>

          <html><head><title>Cluster App Test</title></head>

          <body>

          Server Info:

          <%

          out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>

          <%

            out.println("<br> ID " + session.getId()+"<br>");

            // 如果有新的 Session 屬性設置

            String dataName = request.getParameter("dataName");

            if (dataName != null && dataName.length() > 0) {

               String dataValue = request.getParameter("dataValue");

               session.setAttribute(dataName, dataValue);

            }

            out.println("<b>Session 列表</b><br>");

            System.out.println("============================");

            Enumeration e = session.getAttributeNames();

            while (e.hasMoreElements()) {

               String name = (String)e.nextElement();

               String value = session.getAttribute(name).toString();

               out.println( name + " = " + value+"<br>");

                   System.out.println( name + " = " + value);

             }

          %>

            <form action="test.jsp" method="POST">

              名稱:<input type=text size=20 name="dataName">

               <br>

              :<input type=text size=20 name="dataValue">

               <br>

              <input type=submit>

             </form>

          </body>

          </html>

          Session測試

          項目部署好之后,啟動三個tomcat以及Apache,啟動順序隨意,然后再瀏覽器中輸入http://localhost/test/test.jsp,結果如下圖:

           

          刷新頁面,如下圖:

           

          再次刷新,如下圖:

           

          多次刷新頁面的sessionID看是同一個ID,說明session是復制成功了。那么session中的存儲的東西呢,在輸入框中分別輸入112233后,顯示結果如下圖:

           



          節點插拔測試

          關閉Tomcat

          關閉tomcat3,刷新頁面,可以不斷訪問tomcat1tomcat2,再關閉tomcat2,只能夠訪問tomcat1,說明節點關閉時運行正常。

          啟動Tomcat

          如果重啟Tomcat2,無論怎么刷新,始終訪問Tomcat3,無法訪問tomcat2,這時利用另外臺機器訪問頁面,發現Tomcat2正常,然后在刷本地頁面,又可以訪問Tomcat2了。對于每個新來的sessionApache按照節點配置中的lbfactor比重選擇訪問節點,如果某節點node1不能訪問,則尋找下一可訪問節點,并且將此node1就在該訪問session的訪問黑名單中,以后該session的訪問直接不考慮node1,即使node1又可以訪問了。而新來的session是無黑名單的,如果新的session能夠訪問到node1了,則會將node1在其他所有session訪問的黑名單刪除,這樣其他session就又能訪問node1節點了。經過以上測試,說明Tomcat集群和負載均衡已經實現了。

          posted on 2016-11-30 16:01 喝水居然長肉 閱讀(120) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 壤塘县| 邹平县| 察雅县| 乾安县| 昭平县| 台东县| 德江县| 晋宁县| 海淀区| 东辽县| 馆陶县| 民县| 呼玛县| 布尔津县| 昌乐县| 东安县| 仪陇县| 临沧市| 巴塘县| 澄迈县| 南昌县| 信阳市| 即墨市| 襄汾县| 辽中县| 涞水县| 苗栗县| 延长县| 双流县| 正定县| 乳源| 武穴市| 西峡县| 天气| 合肥市| 绥阳县| 彰化市| 岱山县| 海阳市| 湘潭市| 乐山市|