<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    似水無痕 ^o^ 迪迪派

    ^o^ 努力學習 ^o^ 努力工作 ^o^ 努力養老婆 ^o^

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      5 隨筆 :: 0 文章 :: 35 評論 :: 0 Trackbacks

       說起JBoss集群好像很高深的樣子,其實一點也不恐怖,建立一個集群很簡單,難的是怎么針對具體的應用優化服務器和實現負載均衡(學習中^o^)。本文將帶領大家在JBoss的default目錄下建立一個簡單的Web方面的JBoss集群。

          搭建環境

       兩臺電腦 //其實一臺也夠了,不過需要修改其中一個JBoss監聽的端口,要不然有沖突
       jboss-4.0.4.GA
       apache_2.0.59 //我使用的是apache_2.0.59-win32-x86-no_ssl,其實無所謂的
       mod_jk-apache-2.0.59.so //Apache請求分發的模塊,官網上可以找到

       首先安裝JBoss,我用的是zip格式的,直接解壓縮就可以了,在兩臺電腦里分別安裝。

       接下來在其中一臺電腦上(這里是192.168.0.2)安裝Apache(其實應該再找一臺電腦來安裝的),很簡單,略過^o^(偶是不是很懶^o^)

          配置JBoss

       
    假設兩臺電腦的IP分別為192.168.0.2和192.168.0.3。我們這里使用JBoss的default目錄。

       將如下文件從%JBoss_Home%\server\all\lib里面拷到%JBoss_Home%\server\default\lib目錄下:

       jbossha.jar(加載org.jboss.ha.framework.server.ClusterPartition)
       jgroups.jar(JBoss集群底層通信協議)
       jboss-cache.jar(加載org.jboss.cache.aop.TreeCacheAop)

       還要從%JBoss_Home%\server\all\deploy里把cluster-service.xml和tc5-cluster.sar拷貝到%JBoss_Home%\server\default\deploy里面。

       編輯192.168.0.2的%JBoss_Home%\server\default\deploy\jbossweb-tomcat55.sar\server.xml 
       修改下面代碼:
    <Engine name="jboss.web" defaultHost="localhost">

       修改為:
    <Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">

       其中 jvmRoute是用來讓apache識別的節點名稱,一個節點一個名稱,注意不要有重復的(可以結合IP設置)。

       同理編輯192.168.0.3的%JBoss_Home%\server\default\deploy\jbossweb-tomcat55.sar\server.xml
    注意把jvmRoute設置為node2,可以設置成別的只要和192.168.0.2的不重復就行,但是要和Apache的workers.properties(稍后介紹)下的配置一致。

       在%JBoss_Home%\server\default\deploy\jbossweb-tomcat55.sar\ROOT.war\目錄下添加一個新文件夾\test,并在里面添加如下3個jsp文件:

    index.jsp
     1<%@ page contentType="text/html;charset=ISO8859_1" %> 
     2
     3<html>
     4<head>
     5<title>Test</title>
     6<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     7</head>
     8
     9<body onload="document.form.name.focus()">
    10<br><br><br>
    11<center>
    12The host is : <%=java.net.InetAddress.getLocalHost().toString()%><br>
    13Your session id is : <%=session.getId()%><br>
    14Your session detail is : <%=session.toString()%><br>
    15Your session context is : <%=session.getSessionContext()%><br><br>
    16Please input your name:<br>
    17<form action="test_action.jsp" method="POST" name="form">
    18    <input type="input" name="name"/>
    19    <input type="submit" value="提交">
    20</form>
    21</center>
    22</body>
    23</html>
    24
    25

    test_action.jsp
     1<%@ page contentType="text/html;charset=ISO8859_1" %> 
     2
     3<html>
     4<head>
     5<title>Test Action</title>
     6<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     7</head>
     8<%
     9    String name = request.getParameter("name");
    10    session.setAttribute("name",name);
    11    String host = java.net.InetAddress.getLocalHost().toString();
    12
    %>
    13<body>
    14<br>
    15<br>
    16<center>
    17The host is : <%=host%><br><br>
    18Your session id is : <%=session.getId()%><br>
    19Your session detail is : <%=session.toString()%><br>
    20Your session context is : <%=session.getSessionContext()%><br><br>
    21Your name is : <%=name%><br>
    22This name is set into the session.<br>
    23Please click <href="session.jsp">here</a> to check the session valid or not.
    24</center>
    25</body>
    26</html>
    27
    28

    session.jsp
     1<%@ page contentType="text/html;charset=ISO8859_1" %> 
     2
     3<html>
     4<head>
     5<title>Test Action</title>
     6<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     7</head>
     8<%
     9    String name = null;
    10    if(session.getAttribute("name")!=null)
    11        name = (String)session.getAttribute("name");
    12    String host = java.net.InetAddress.getLocalHost().toString();
    13
    %>
    14<body>
    15<br>
    16<br>
    17<center>
    18The host is : <%=host%><br>
    19Your session id is : <%=session.getId()%><br>
    20Your session detail is : <%=session.toString()%><br>
    21Your session context is : <%=session.getSessionContext()%><br><br>
    22<%
    23    if(name!=null){
    24        out.print("Your name is "+name+"<br>");
    25        out.print("The session is valid.");
    26    }
    27    else{
    28        out.print("The session is invalid!!!");
    29    }
    30
    %>
    31<href="index.jsp">Return!</a>
    32</center>
    33</body>
    34<%
    35    if(session.getAttribute("name")!=null)
    36        session.invalidate();
    37
    %>
    38</html>
    39
    40

       編輯%JBoss_Home%\server\default\deploy\jbossweb-tomcat55.sar\ROOT.war\WEB-INF\web.xml在<web-app>節點下增加如下代碼:
    1<distributable/>
       完成后web.xml代碼如下:
     1<?xml version="1.0" encoding="ISO-8859-1"?>
     2
     3<!DOCTYPE web-app
     4    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     5    "http://java.sun.com/dtd/web-app_2_3.dtd">
     6
     7<web-app>
     8  <distributable/>
     9  <display-name>Welcome to JBoss</display-name>
    10  <description>
    11     Welcome to JBoss
    12  </description>
    13  <servlet>
    14    <servlet-name>Status Servlet</servlet-name>
    15    <servlet-class>org.jboss.web.tomcat.tc5.StatusServlet</servlet-class>
    16  </servlet>
    17  <servlet-mapping>
    18    <servlet-name>Status Servlet</servlet-name>
    19    <url-pattern>/status</url-pattern>
    20  </servlet-mapping>
    21</web-app>
    22
       看到第8行了嗎?^o^

       到這里JBoss就配置完成了^o^

          配置Apache

       JBoss的Web集群使用apache的mod_jk,瀏覽器請求apache服務器,apache服務器根據workers.properties中的配置進行request分發,apache服務器和Jboss中的Tomcat可以用ajp1.3進行通信的,request通過ajp1.3協議的包裝被發送到Jboss,Jboss執行后返回結果。

       將下載到的mod_jk-apache-2.0.59.so保存到%Apache%\modules\目錄下,并去掉版本號重命名為“mod_jk.so”,如果不改也可以在mod-jk.conf文件(稍后介紹)里修改配置。

       在%Apache%\conf\目錄下新建mod-jk.conf,并將如下代碼添加進去:
     1# Load mod_jk module
     2# Specify the filename of the mod_jk lib
     3LoadModule jk_module modules/mod_jk.so
     4# Where to find workers.properties
     5JkWorkersFile conf/workers.properties
     6# Where to put jk logs
     7JkLogFile logs/mod_jk.log
     8# Set the jk log level [debug/error/info]
     9JkLogLevel debug
    10# Select the log format
    11JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
    12# JkOptions indicates to send SSK KEY SIZE
    13JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
    14# JkRequestLogFormat
    15JkRequestLogFormat "%w %V %T"
    16# Mount your applications
    17#JkMount /application/* loadbalancer
    18JkMount /* loadbalancer
    19# You can use external file for mount points.
    20# It will be checked for updates each 60 seconds.
    21# The format of the file is: /url=worker
    22# /examples/*=loadbalancer
    23JkMountFile conf/uriworkermap.properties
    24# Add shared memory.
    25# This directive is present with 1.2.10 and
    26# later versions of mod_jk, and is needed for
    27# for load balancing to work properly
    28JkShmFile logs/jk.shm
    29# Add jkstatus for managing runtime data
    30<Location /jkstatus/>
    31JkMount status
    32Order deny,allow
    33Deny from all
    34Allow from 127.0.0.1
    35</Location>
       上述代碼的第3行就是配置mod_jk.so模塊的路徑。

       編輯%Apache%\conf\httpd.conf在最后一行添加如下代碼:
    1Include conf/mod-jk.conf

       在 %Apache%\conf\目錄下添加workers.properties文件,該文件就是配置Apache所要將request轉發到的JBoss的路徑信息,代碼如下:
     1# 定義request所要轉發到的節點
     2worker.list=loadbalancer,status
     3# 定義節點 Node1
     4worker.node1.port=8009
     5worker.node1.host=192.168.0.2
     6worker.node1.type=ajp13
     7worker.node1.lbfactor=1
     8worker.node1.cachesize=10
     9# 定義節點 Node2
    10worker.node2.port=8009
    11worker.node2.host=192.168.0.3
    12worker.node2.type=ajp13
    13worker.node2.lbfactor=1
    14worker.node2.cachesize=10
    15# 負載配置
    16worker.loadbalancer.type=lb
    17worker.loadbalancer.balance_workers=node1,node2
    18worker.loadbalancer.sticky_session=0
    19worker.status.type=status

       上述代碼中:
       port是配置JBoss AJP所監聽的端口號,可以在%JBoss_Home%\server\default\deploy\jbossweb-tomcat55.sar\server.xml 看到,如下
    1<!-- A AJP 1.3 Connector on port 8009 -->
    2<Connector port="8009" address="${jboss.bind.address}" 
    3         emptySessionPath="true" enableLookups="false"
    4         redirectPort="8443" protocol="AJP/1.3"/>
       host定義JBoss所在機器的IP地址
       lbfactor定義該節點的權重,數字越大分發到該節點的request越多
       cachesize是servlet線程池的大小(對session復制有影響)

       到這里所有的配置就全部完成啦^o^

       啟動192.168.0.2上的apache和兩臺機器上的JBoss。
       打開瀏覽器,輸入網址訪問apache:http://192.168.0.2/test/index.jsp,回車!看到了吧?

       頁面上有JBoss所在機器的IP地址,刷新頁面還能看到IP在變化,說明apache將request分發到了不同的JBoss上,在輸入框中輸入隨便一個字符串并提交還能測試JBoss 的session復制情況。

    ^o^
    posted on 2007-05-17 21:33 ddpie 閱讀(6627) 評論(8)  編輯  收藏 所屬分類: JBoss

    評論

    # re: 在default目錄下快速配置JBoss集群(Web方面) 2007-12-20 16:15 Alan_xu
    很好的文章,uriworkermap.properties文件沒有創建,需要創建.不然會報錯.  回復  更多評論
      

    # re: 在default目錄下快速配置JBoss集群(Web方面)[未登錄] 2008-02-20 15:58 aa
    e   回復  更多評論
      

    # re: 在default目錄下快速配置JBoss集群(Web方面)[未登錄] 2008-02-20 15:59 x小邱
    恩 ,不錯  回復  更多評論
      

    # re: 在default目錄下快速配置JBoss集群(Web方面)[未登錄] 2009-02-18 10:34 joe
    謝謝你的文章  回復  更多評論
      

    # re: 在default目錄下快速配置JBoss集群(Web方面)[未登錄] 2009-08-23 15:06
    很詳細的介紹,謝謝分享,我決定自己試一試
      回復  更多評論
      

    # re: 在default目錄下快速配置JBoss集群(Web方面) 2011-01-03 14:50 網絡時空
    樓主的文章介紹得太好了,我正需要這篇文章啊。。我的qq號是172145286,想加樓主為好友,交流一下,行否?謝謝了  回復  更多評論
      

    # re: 在default目錄下快速配置JBoss集群(Web方面) 2011-01-03 18:09 網絡時空
    我看在有一篇文章中提到還要進行下面的處理,你的上面文章中,怎么沒有這一點呢?另外如下jboss-web.xml文件是在哪個具體目錄中呢?我是用的jboss4.2.GA?

    在jboss-web.xml中增加以下內容:

    <?xml version="1.0"?>

    <jboss-web>

    <context-root>trms</context-root>

    <replication-config>

    <replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger>

    <replication-granularity>SESSION</replication-granularity>

    <replication-field-batch-mode>true</replication-field-batch-mode>

    </replication-config>

    </jboss-web>  回復  更多評論
      

    # re: 在default目錄下快速配置JBoss集群(Web方面)[未登錄] 2012-12-04 09:15 至尊寶
    我按照你的操作還是沒有集群成功  回復  更多評論
      

    主站蜘蛛池模板: 日本亚洲欧洲免费天堂午夜看片女人员 | 最近中文字幕完整免费视频ww| 亚洲欧洲精品成人久久曰影片| 亚洲国产精品久久久久秋霞小| 永久免费av无码网站韩国毛片| 亚洲午夜成激人情在线影院 | 四虎免费大片aⅴ入口| 亚洲国产成人综合| 毛片免费视频观看| 亚洲AV无码国产剧情| 国产精品麻豆免费版| 黄网站色成年片大免费高清| 免费在线观看黄网| 黄桃AV无码免费一区二区三区| 国产亚洲精品看片在线观看| 97国免费在线视频| 久久久久亚洲AV无码专区体验| 国产精品视频免费| 亚洲AV成人片无码网站| 亚洲免费无码在线| 久久成人免费电影| 亚洲18在线天美| 亚洲AⅤ视频一区二区三区| 中国videos性高清免费| 亚洲精品国产成人中文| 免费视频中文字幕| 久久国产美女免费观看精品| 色噜噜综合亚洲av中文无码| 丁香花免费高清视频完整版| 曰批免费视频播放在线看片二| 亚洲伊人成无码综合网| 91久久精品国产免费一区| 亚洲熟妇AV一区二区三区浪潮| 一本久到久久亚洲综合| 男女午夜24式免费视频 | 亚洲AV日韩精品久久久久久久| 亚洲一区免费在线观看| 国产成人 亚洲欧洲| 亚洲gv白嫩小受在线观看| 欧美男同gv免费网站观看| 一级毛片免费观看不收费|