<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 至尊寶
    我按照你的操作還是沒有集群成功  回復  更多評論
      

    主站蜘蛛池模板: 高清在线亚洲精品国产二区| 色窝窝免费一区二区三区| 免费人成年激情视频在线观看 | 亚洲一级视频在线观看| 69视频免费观看l| 337p欧洲亚洲大胆艺术| 18观看免费永久视频| 亚洲国产成+人+综合| 18禁网站免费无遮挡无码中文| 亚洲午夜精品一区二区公牛电影院| 日本最新免费网站| 亚洲五月丁香综合视频| 在线精品免费视频| 免费人成又黄又爽的视频在线电影| 亚洲A∨午夜成人片精品网站| 亚洲精品国产日韩无码AV永久免费网| 狠狠色婷婷狠狠狠亚洲综合| 最近免费字幕中文大全| 亚洲久本草在线中文字幕| 野花高清在线观看免费3中文| 亚洲国产综合AV在线观看| 亚洲Av无码乱码在线znlu| 丝袜足液精子免费视频| 久久久亚洲裙底偷窥综合| 我想看一级毛片免费的| www免费黄色网| 亚洲成a人片在线观看中文!!! | 亚洲精品国产字幕久久不卡| 暖暖免费日本在线中文| 国产成人亚洲综合一区| 亚洲成A∨人片天堂网无码| 日韩精品免费视频| 亚洲中文字幕一区精品自拍| 亚洲国产一级在线观看| 麻豆高清免费国产一区| 福利片免费一区二区三区| 亚洲国产成人久久综合碰碰动漫3d| 99在线视频免费观看视频| 一个人看的hd免费视频| 亚洲一区二区三区精品视频| 亚洲男人在线无码视频|