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

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

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

    itstarting:IT進行時

    想自己所想,做自己所愛

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      28 隨筆 :: 3 文章 :: 55 評論 :: 0 Trackbacks

    此類話題已經很多,可以參考的文檔也不少,我是參考這個blog的文檔做的:
    http://blogger.org.cn/blog/blog.asp?name=lhwork

    1)環境和版本:
    Apache2.0.59+Tomcat5.5.15(兩個),一開始用的是Tomcat5.0.28,一直有問題(在后面總結),就升級到5.5去做試驗了,冤枉5.0.28兄弟了:)

    步驟小結為:
    1、安裝(忽略);
    2、配置Tomcat:
    ???1)第一個Tomcat:
    ??????A.啟用jvmRoute??????
    ??? <!-- You should set jvmRoute to support load-balancing via AJP ie :-->
    ??? <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">??????????
    ??? <!-- Define the top level container in our container hierarchy
    ??? <Engine name="Catalina" defaultHost="localhost">-->
    ??????B.啟用原來禁用的Cluster設置
    ??????
    ??????? <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
    ???????????????? managerClassName="org.apache.catalina.cluster.session.DeltaManager"
    ???????????????? expireSessionsOnShutdown="false"
    ???????????????? useDirtyFlag="true"
    ???????????????? notifyListenersOnReplication="true">

    ??????????? <Membership
    ??????????????? className="org.apache.catalina.cluster.mcast.McastService"
    ????????????????mcastBindAddress="127.0.0.1"
    ??????????????? mcastAddr="224.1.2.3"
    ??????????????? mcastPort="2525"
    ??????????????? mcastFrequency="500"
    ??????????????? mcastDropTime="3000"/>

    ??????????? <Receiver
    ??????????????? className="org.apache.catalina.cluster.tcp.ReplicationListener"
    ??????????????? tcpListenAddress="auto"
    ??????????????? tcpListenPort="4001"
    ??????????????? tcpSelectorTimeout="100"
    ??????????????? tcpThreadCount="6"/>

    ??????????? <Sender
    ??????????????? className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
    ??????????????? replicationMode="pooled"
    ??????????????? ackTimeout="15000"/>

    ??????????? <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
    ?????????????????? filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
    ??????????????????
    ??????????? <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
    ????????????????????? tempDir="/tmp/war-temp/"
    ????????????????????? deployDir="/tmp/war-deploy/"
    ????????????????????? watchDir="/tmp/war-listen/"
    ????????????????????? watchEnabled="false"/>
    ?????????????????????
    ??????????? <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
    ??????? </Cluster>
    ??????C.搞定
    ???2)配置第二個Tomcat(要注意端口沖突了):
    ??????A.變更端口
    ??????<Server port="8005" shutdown="SHUTDOWN">
    ??????=》
    ??????<Server port="8004" shutdown="SHUTDOWN">
    ??????B.變更端口
    ??????<Connector port="8009"
    ?????????????? enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    ??????=》
    ??????<Connector port="9009"
    ?????????????? enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    ??????C.啟用jvmRoute??????
    ??? <!-- You should set jvmRoute to support load-balancing via AJP ie :-->
    ??? <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">??????????
    ??? <!-- Define the top level container in our container hierarchy
    ??? <Engine name="Catalina" defaultHost="localhost">-->
    ??????D.啟用原來禁用的Cluster設置??????
    ??????? <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
    ???????????????? managerClassName="org.apache.catalina.cluster.session.DeltaManager"
    ???????????????? expireSessionsOnShutdown="false"
    ???????????????? useDirtyFlag="true"
    ???????????????? notifyListenersOnReplication="true">

    ??????????? <Membership
    ??????????????? className="org.apache.catalina.cluster.mcast.McastService"
    ????????????????mcastBindAddress="127.0.0.1"
    ??????????????? mcastAddr="224.1.2.3"
    ??????????????? mcastPort="2525"
    ??????????????? mcastFrequency="500"
    ??????????????? mcastDropTime="3000"/>

    ??????????? <Receiver
    ??????????????? className="org.apache.catalina.cluster.tcp.ReplicationListener"
    ??????????????? tcpListenAddress="auto"
    ??????????????? tcpListenPort="4002"
    ??????????????? tcpSelectorTimeout="100"
    ??????????????? tcpThreadCount="6"/>

    ??????????? <Sender
    ??????????????? className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
    ??????????????? replicationMode="pooled"
    ??????????????? ackTimeout="15000"/>

    ??????????? <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
    ?????????????????? filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
    ??????????????????
    ??????????? <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
    ????????????????????? tempDir="/tmp/war-temp/"
    ????????????????????? deployDir="/tmp/war-deploy/"
    ????????????????????? watchDir="/tmp/war-listen/"
    ????????????????????? watchEnabled="false"/>
    ?????????????????????
    ??????????? <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
    ??????? </Cluster>
    ??????E.搞定
    3、配置apache:
    ???1)修訂conf/httpd.conf??????
    ??????#add by zhengxq
    ??????LoadModule jk2_module modules/mod_jk2.so
    ???2)新增worders2.properties并放到conf下
    ??????[shm]
    info=Scoreboard. Requried for reconfiguration and status with multiprocess servers.
    file=anon

    # Defines a load balancer named lb. Use even if you only have one machine.
    [lb:lb]
    worker=ajp13:tomcat1
    worker=ajp13:tomcat2

    # Example socket channel, override port and host.
    [channel.socket:localhost:9009]
    port=9009
    host=127.0.0.1

    # define the worker
    [ajp13:localhost:9009]
    channel=channel.socket:localhost:9009
    group=lb

    # Example socket channel, override port and host.
    [channel.socket:localhost:8009]
    port=8009
    host=127.0.0.1

    # define the worker
    [ajp13:localhost:8009]
    channel=channel.socket:localhost:8009
    group=lb

    # Map the Tomcat examples webapp to the Web server uri space
    [uri:/clusterapp/*]
    group=lb
    ??????3)搞定

    3.測試程序,請參考上述參考文檔,如下:
    <%@ page contentType="text/html; charset=GBK" import="java.util.*"%>
    <html><head><title>Cluster App Test</title></head>
    <body>
    Server Info: <%out.print(request.getLocalAddr() + " : " + request.getLocalPort());%>
    <%
    out.println("<br> ID " + session.getId());

    // 如果有新的 Session 屬性設置
    String dataName = request.getParameter("dataName");
    if (dataName != null && dataName.length() > 0) {
    ? String dataValue = request.getParameter("dataValue");
    ? session.setAttribute(dataName, dataValue);
    }

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

    Enumeration e = session.getAttributeNames();
    while (e.hasMoreElements()) {
    ? String name = (String)e.nextElement();
    ? String value = session.getAttribute(name).toString();
    ? out.println( name + " = " + value);
    ? }
    %>
    <form action="index.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>



    ???所需要注意的是:
    ???1、測試應用的web.xml必須加上:<distributable/>
    ???2、我搞了很久,發現三個東西起來后,可以訪問,但只能做到負載均衡,不能session復制,這點我重復配置了一次,就是不行,郁悶之下找了tomcat的郵件列表,這樣做:
    ??????1)測試廣播是否正常
    ?????????A. download this jar
    ????????????http://cvs.apache.org/~fhanik/tomcat-replication.jar

    ?????????B. Open two terminals?
    ??????????? a) Terminal one run
    ???????????????java -cp tomcat-replication.jar MCaster 239.255.10.10 2525 Terminal1
    ??????????? b) Terminal two run
    ???????????????java -cp tomcat-replication.jar MCaster 239.255.10.10 2525 Terminal2
    ?????????發現結果如下:
    ?????????C:\>java -cp tomcat-replication.jar MCaster 224.1.2.3 2525 Terminal1
    Usage MCaster [address port message]
    BEGIN TO RECEIVE
    SENT:Terminal11
    SENT:Terminal12
    SENT:Terminal13
    SENT:Terminal14
    SENT:Terminal15
    SENT:Terminal16
    SENT:Terminal17
    SENT:Terminal18

    ?????????表明廣播有問題,氣死了,難怪Tomcat總是在啟動的時候提示:
    ?????????信息: Manager [/clusterapp]: skipping state transfer. No members active in cluster group.

    ??????后來終于發現貓膩,必須注意在server.xml的<Cluster ..<Membership里面加上mcastBindAddress="127.0.0.1"。
    ???????
    為什么呢?很簡單,因為我安裝了VPN,這家伙會設置一個虛擬網卡,導致綁定失?。]地方責怪了,只好讓它墊背)?!這是通過郵件列表里面所描述的多網卡綁定問題舉一反三得到的判斷。具體請參考:http://www.servlets.com/archive/servlet/ReadMsg?msgId=475067&listName=tomcat-user

    ??????


    posted on 2007-03-07 10:51 IT進行時 閱讀(7282) 評論(5)  編輯  收藏 所屬分類: Java Tips

    評論

    # re: 關于Apache+Tomcat的Cluster的郁悶問題,終于得到解決 2007-03-08 08:48 不好說
    還在用jk2?。??  回復  更多評論
      

    # re: 關于Apache+Tomcat的Cluster的郁悶問題,終于得到解決 2007-03-08 16:02 花落知多少
    to 不好說 同志:老實說,這方面沒有研究,純粹拿來主意,用的是jakarta-tomcat-connectors-jk2.0.4-win32-apache2.0.49所提供的so文件。你有更好的選擇?請多指教!
      回復  更多評論
      

    # re: 關于Apache+Tomcat的Cluster的郁悶問題,終于得到解決 2008-03-03 23:57 tomcat-user
    我也遇到這個問題了,看到你的解決方案后解決了~ 謝謝了~  回復  更多評論
      

    # re: 關于Apache+Tomcat的Cluster的郁悶問題,終于得到解決 2009-12-14 23:31 xie
    skipping state transfer. No members active in cluster group.


    我加了那個 mcastBindAddress="127.0.0.1"。


    可還是只能負載均衡,不能session復制...

    樓主幫忙。。。  回復  更多評論
      

    # re: 關于Apache+Tomcat的Cluster的郁悶問題,終于得到解決 2009-12-15 22:48 IT進行時
    可以測試一下廣播,應該是配置問題或是受到了干擾  回復  更多評論
      

    主站蜘蛛池模板: 精品久久久久久亚洲中文字幕 | 国产男女爽爽爽爽爽免费视频| 国产精品亚洲αv天堂无码| 亚洲国产成人精品无码区花野真一 | 大地资源在线资源免费观看| 国产亚洲色视频在线| 国产成人精品免费大全| 久久青青草原亚洲av无码| 中文在线免费不卡视频| 亚洲欧洲精品久久| **aaaaa毛片免费| 亚洲videos| 国产成人无码区免费A∨视频网站| 亚洲AV无码AV日韩AV网站| 国产a级特黄的片子视频免费| 特级aa**毛片免费观看| 亚洲精品乱码久久久久久久久久久久 | 免费鲁丝片一级在线观看| 国产亚洲午夜精品| 亚洲一级片免费看| 久久99精品视免费看| 亚洲中文无码线在线观看| 免费理论片51人人看电影| 牛牛在线精品观看免费正| 国产亚洲精品岁国产微拍精品| 久久国产乱子伦精品免费不卡| 国产成人精品123区免费视频| 香蕉国产在线观看免费| 亚洲va中文字幕无码久久| 免费黄色福利视频| jzzijzzij在线观看亚洲熟妇| 亚洲国产精品无码久久久久久曰 | 亚洲国产AV无码专区亚洲AV | 免费人成大片在线观看播放| 亚洲av中文无码乱人伦在线播放| 亚洲网站在线免费观看| 国产成人综合亚洲| 亚洲今日精彩视频| 四虎影视永久免费观看地址| 久久精品视频免费看| 色婷婷亚洲一区二区三区|