一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

wildfly四種集群方式的配置

 云端素館 2015-02-11
筆者之前對wildfly的集群進(jìn)行學(xué)習(xí),現(xiàn)整理資料如下:

standalone集群搭建

standalone模式下的集群有以下條件:

(1) 必須使用同一配置的profile,且是ha profile;

(2) 必須設(shè)定相同的多播地址;

(3) 確保集群中的各節(jié)點在同一局域網(wǎng)中。

該模式下的集群集群分為同機(jī)多節(jié)點集群和多機(jī)多節(jié)點集群。

同機(jī)多節(jié)點集群

http://www./articles/IfuQjq

對于該方式的集群,具體的配置如下所示(以兩個節(jié)點為例進(jìn)行說明)。

(1) 環(huán)境搭建

    將下載的wildfly-8.0.0.Alpha4.rar解壓到IP地址為10.22.4.46機(jī)器的指定文件夾,同時將文件夾下面的standalone文件夾復(fù)制一份,并將它們分別命名為standalone-node1和standalone-node2,如下所示。

   

(2)部署應(yīng)用

   在這兩個文件夾下都部署web.xml文件中包含<distributable/>標(biāo)簽的Web應(yīng)用,即將對應(yīng)的.war文件拷貝到兩個節(jié)點對應(yīng)的deployments目錄下。

(3)啟動服務(wù)

   分別在命令行下啟動:

     節(jié)點1:

./standalone.bat -c standalone-ha.xml -b 10.22.4.46  -u 230.0.0.4  -Djboss.server.base.dir=../standalone-node1 -Djboss.node.name=node1  -Djboss.socket.binding.port-offset=100

    節(jié)點2:

 ./standalone.bat -c standalone-ha.xml -b 10.22.4.46  -u 230.0.0.4  -Djboss.server.base.dir=../standalone-node2 -Djboss.node.name=node2  -Djboss.socket.binding.port-offset=200

 注:-c 指啟動時所使用的服務(wù)器配置文件

       -b 指綁定的地址

       -u 指多播地址

       -Djboss.server.base.dir 指server節(jié)點所在的位置

       -Djboss.node.name 指server節(jié)點的名字

       -Djboss.socket.binding.port-offset 指server節(jié)點運行時的端口偏移值

啟動起來,若如下圖,則說明該模式的同機(jī)多節(jié)點集群配置成功:

      

(4)測試集群

    訪問web應(yīng)用,如下所示:

     

    

至此,standalone模式的同機(jī)多節(jié)點集群配置完畢。

多機(jī)多節(jié)點集群

對于該方式的集群,具體的配置方式如下所示(以兩臺機(jī)器為例予以說明):

(1) 環(huán)境搭建

     下載wildfly-8.0.0.Alpha4.rar分別在兩臺機(jī)器(IP地址分別為10.22.4.46和192.168.7.128)上進(jìn)行解壓,同時將解壓后文件夾下面的standalone文件夾分別命名為standalone-node1及standalone-node2,其中10.22.4.46機(jī)器為windows環(huán)境,192.168.7.128為linux環(huán)境。

(2)部署應(yīng)用

    在這兩個文件夾下都部署web.xml文件中包含<distributable/>標(biāo)簽的Web應(yīng)用,即將對應(yīng)的.war文件拷貝到兩個節(jié)點對應(yīng)的deployments目錄下。

(3)啟動服務(wù)

   在兩臺機(jī)器上分別運行下面的命令啟動服務(wù)器:

   在10.22.4.46機(jī)器上啟動以下命令:

    standalone.bat -c standalone-ha.xml -b 10.22.4.46  -u 230.0.0.4  -Djboss.server.base.dir=../standalone-node1 -Djboss.node.name=node1  -Djboss.socket.binding. port-offset=100

 在192.168.7.128機(jī)器上啟動以下命令:

  ./standalone.sh -c standalone-ha.xml -b 192.168.7.128  -u 230.0.0.4  -Djboss.server.base.dir=../standalone-node2 -Djboss.node.name=node2  -Djboss.socket.binding. port-offset=400

  注:-c 指啟動時所使用的服務(wù)器配置文件

        -b 指綁定的地址

        -u 指多播地址

        -Djboss.server.base.dir 指server節(jié)點所在的位置

        -Djboss.node.name 指server節(jié)點的名字

        -Djboss.socket.binding.port-offset 指server節(jié)點運行時的端口偏移值

(4)警告信息

    啟動服務(wù)器之后,你可能會遇到如下警告:

17:37:56,367 WARN  [org.jgroups.protocols.UDP] (ServerService Thread Pool -- 55) [JGRP00015] 

the receive buffer of socket MulticastSocket was set to 25MB, but the OS only allocated 20.97MB. 

This might lead to performance problems. Please set your max receive buffer in the OS correctly (e.g. net.core.rmem_max on Linux)  

   這個警告是由于linux操作系統(tǒng)設(shè)置的receive buffer of scoket 過小,只需要調(diào)整os的receive buffer of scoket值大小就可以解決。

  解決辦法:

     ->打開linux系統(tǒng)根目錄/下的etc下面的配置文件:vi /etc/sysctl.conf

     ->往sysctl.conf添加如下內(nèi)容:

net.core.rmem_max = 2097152

net.core.wmem_max = 2097152

其中net.core.wmem_max是發(fā)送緩沖區(qū)上限,net.core.rmem_max 是接收緩沖區(qū)上限。

    ->執(zhí)行配置:sysctl -p

   解決詳情請參考: WildFly配置與維護(hù)之QA:the receive buffer of socket MulticastSocket was set to 25MB, but the OS only allocated 20.97MB.

(5)測試集群

    在兩臺機(jī)器上分別訪問,如下所示:

    

   

至此,standalone模式的多機(jī)多節(jié)點集群配置完畢。

    

domian集群搭建

domain模式下的集群有以下條件:

(1) 有且只能有一個Domain Controller;

(2) Host Controller主機(jī)上的Server節(jié)點根據(jù)Domain Controller主機(jī)上的domain.xml配置啟動;

(3) 確定集群中的各節(jié)點在同一局域網(wǎng)中。

該模式下的集群分為同機(jī)多節(jié)點集群和多機(jī)多節(jié)點集群。

同機(jī)多節(jié)點集群

 WildFly 一個很重要的特性是Domain Mode能夠從單個的控制點管理多個服務(wù)器實例,這樣的一組server作為一個整體由Domain Controller進(jìn)程統(tǒng)一管理,在同機(jī)狀態(tài)下以domain模式啟動時,會在系統(tǒng)中同時啟動5個進(jìn)程:

 3個server實例;一個Domain Controller(Domain控制器),這個進(jìn)程用來集中控制所有屬于這個“domain”的server;一個輕量的Process Controller,負(fù)責(zé)管理其他的4個進(jìn)程并監(jiān)聽它們的生命周期。

 對于該方式的集群,具體的配置如下所示(以三個節(jié)點為例進(jìn)行實驗)。

(1) 環(huán)境搭建

    下載wildfly-8.0.0.Alpha4.rar并解壓到指定文件夾。

(2)修改配置

    ->在domain.xml配置文件中提供了兩個群組,默認(rèn)情況下我們使用“main-server-group”群組。其中的profile指定我們要使用的配置文件,socket-binding-group指定我們所依賴的協(xié)議,要配置該模式下的集群環(huán)境就需要將profile

的值設(shè)定為"ha",ref的值設(shè)定為" ha-sockets ",如下所示:

  <server-groups>

        <server-group name=" main-server-groupprofile="ha" >

            <jvm name="default">

                <heap size="64m" max-size="512m"/>

            </jvm>

            <socket-binding-group  ref="ha-sockets" />

        </server-group> 

        <server-group name="other-server-group" profile="full-ha">

            <jvm name="default"> 

                <heap size="64m" max-size="512m"/> 

            </jvm>

            <socket-binding-group ref="full-ha-sockets"/>

        </server-group>

  </server-groups> 

    -> 在設(shè)定群組之后,修改host.xml文件中的<servers>片段,添加要操作集群的節(jié)點,如下所示:

    <servers>

        <server name=" server-one " group="main-server-group">

             <socket-bindings  port-offset="100" />

        </server>

        <server name=" server-two " group="main-server-group" auto-start="true">

             <socket-bindings  port-offset="200" />       

       </server>

        <server name=" server-three " group="main-server-group" auto-start="true">

           <socket-bindings  port-offset="300" />

        </server> 

  </servers>

     此處注意server-one、server-two都屬于main-server-group,它們的端口偏移值分別為100、200、300,即它們對應(yīng)的端口號分別為8180、8280、8380。

   

 (3)啟動服務(wù)

    啟動服務(wù)器,控制臺顯示如下:

    

  此刻啟動服務(wù)器之后不會顯示出集群成功的信息,通過在控制臺部署web.xml文件中包含<distributable/>標(biāo)簽的Web應(yīng)用可以查看配置結(jié)果。    
(4)部署應(yīng)用   

   部署war應(yīng)用步驟:

   ->添加應(yīng)用:

   ->分配群組:

  

(5)訪問war應(yīng)用

       8180端口節(jié)點:

       

      8280端口節(jié)點:

      

     8380端口節(jié)點:

     

    都能進(jìn)行訪問,至此,說明domain模式的同機(jī)多節(jié)點集群配置成功。

    小結(jié):要實現(xiàn)該模式下的集群需要注意以下三點:

       1)  各節(jié)點的命名不能相同

       2)  各節(jié)點必須處在同一個群組內(nèi)

       3)  各節(jié)點必須有不同的端口偏移值

多機(jī)多節(jié)點集群

對于該方式的集群,具體的配置如下所示(以兩臺機(jī)器為例進(jìn)行實驗)。

(1) 環(huán)境搭建

   下載wildfly-8.0.0.Alpha4.rar并分別在兩臺機(jī)器(IP地址分別為10.22.4.46和192.168.7.128)上解壓到指定文件夾,同時設(shè)定IP地址為10.22.4.46的機(jī)器為主控制器(master),另一機(jī)器為從機(jī)(salve)。

(2) 配置主控制器

  1)設(shè)定一個群組。打開domain.xml文件,找到其中的<server-group>標(biāo)簽,如下所示(這里我們選擇main-server-group作為默認(rèn)的群組),profile的值設(shè)定為“ha”,ref的值設(shè)定為"ha-sockets",如下所示:

 <server-groups>

        <server-group name="main-server-group"  profile="ha" >

            <jvm name="default">

                <heap size="64m" max-size="512m"/>

            </jvm>

            <socket-binding-group  ref="ha-sockets" />

        </server-group>

 </server-groups>

         

  2) 在指定的群組中增加server節(jié)點。打開host.xml文件,找到<server>標(biāo)簽,為不同的節(jié)點指定相同的群組,即group值設(shè)定為"main-sever-group",如下所示:

  <servers>

        <server name=" server-one " group=" main-server-group ">

             <socket-bindings  port-offset="100" />

        </server>

        <server name=" server-two " group= "main-server-group " auto-start="true">

             <socket-bindings  port-offset="200" />       

        </server>

        <server name=" server-three " group=" main-server-group " auto-start="true">

            <socket-bindings  port-offset="300" />

        </server>

  </servers>

    此處注意server-one、server-two、server-three的端口偏移值分別為100、200、300,即它們對應(yīng)的端口號分別為8180、8280、8380。    

  3) 配置接口信息

     默認(rèn)狀況下,host.xml文件中端口配置為127.0.0.1,如下所示:

   <interfaces>

       <interface name="management">

            <inet-address value="${jboss.bind.address.management: 127.0.0.1 }"/>

       </interface>

       <interface name="public">

            <inet-address value="${jboss.bind.address: 127.0.0.1 }"/>

       </interface>

       <interface name="unsecured">       

          <inet-address value=" 127.0.0.1 " />    

       </interface>

</interfaces>     

   為了能讓從機(jī)找到主控制器,需將127.0.0.1改成主控制器實際的IP,如下所示:

<interfaces>

       <interface name="management">

            <inet-address value="${jboss.bind.address.management:  10.22.4.46 }"/>

       </interface>

       <interface name="public">

            <inet-address value="${jboss.bind.address:  10.22.4.46 }"/>

       </interface>

       <interface name="unsecured">       

          <inet-address value=" 10.22.4.46 " />    

       </interface>

</interfaces> 

(3) 配置從機(jī)

   1)角色配置

     在集群中從機(jī)不再充當(dāng)主控制器的角色,因此可以將自己的domain.xml文件可以刪掉或重命名,只需在host.xml文件修改配置即可。將host.xml文件中的host名修改為“slave”,并將主控制器修改為之前設(shè)定的主控制器的IP地址,如下所示:

<host  name="slave"  xmlns="urn:jboss:domain:2.0">

    

<domain-controller>

    <remote  host="10.22.4.46"  port="9999" security-realm="ManagementRealm"/>

</domain-controller> 

   2) 增加服務(wù)器節(jié)點 

     在host.xml文件中增加節(jié)點信息,同時群組名必須與主控制器規(guī)定的相同,如下所示:

 <servers>

        <server name= "server-four"  group= "main-server-group" >

             <socket-bindings  port-offset="400" />

        </server>

        <server name= "server-five"  group= "main-server-group"  auto-start="true">

             <socket-bindings  port-offset="500" />       

        </server>

        <server name= "server-six"  group= "main-server-group"  auto-start="true">

            <socket-bindings  port-offset="600" />

        </server>

  </servers>

     此處注意server-four、server-five、server-six的端口偏移值分別為400、500、600,即他們對應(yīng)的端口號為8480、8580、8680。   

   3) 修改接口配置

      與主控制器相同,我們也需要將host.xml文件中的接口地址修改為從機(jī)的實際IP地址,如下所示:

 <interfaces>

       <interface name="management">

            <inet-address value="${jboss.bind.address.management:  192.168.7.128 }"/>

       </interface>

       <interface name="public">

            <inet-address value="${jboss.bind.address:  192.168.7.128 }"/>

       </interface>

       <interface name="unsecured">       

          <inet-address value=" 192.168.7.128 " />    

       </interface>

</interfaces>    

(4) 安全配置

     1)添加用戶
    為主控制器增加管理員用戶admin及slave,同時為從機(jī)添加用戶slave,具體的添加用戶操作可以參考本文中添加管理用戶一節(jié)(筆者在添加slave用戶時使用的密碼是sn@12345)
     2)修改主控制器配置

        成功添加管理員用戶之后,在主控制器和從機(jī)的host.xml文件中分別添加如下配置(其中c25AMTIzNDU是sn@12345的base64碼值,用戶可以根據(jù)實際設(shè)定的密碼值進(jìn)行適當(dāng)?shù)男薷模鄬?yīng)的base64碼值在添加用戶的界面上會給出)。

<security-realms>

     <security-realm name="ManagementRealm">

            <server-identities>

                 <secret value="c25AMTIzNDU="/>

           </server-identities>

     </security-realm>

</security-realms>       

    

   3)警告信息

    至此,整個domian的多機(jī)多節(jié)點集群配置結(jié)束,windows下直接運行bin下面的domain.bat命令,linux下到bin目錄下執(zhí)行./domain.sh即可,但是啟動服務(wù)器之后,你可能會遇到如下警告:

    警告1:

17:37:56,367 WARN  [org.jgroups.protocols.UDP] (ServerService Thread Pool -- 55) [JGRP00015] 

the receive buffer of socket MulticastSocket was set to 25MB, but the OS only allocated 20.97MB. 

This might lead to performance problems. Please set your max receive buffer in the OS correctly (e.g. net.core.rmem_max on Linux)  

   這個警告是由于操作系統(tǒng)os 設(shè)置的receive buffer of scoket 過小,只需要調(diào)整os的receive buffer of scoket值大小就可以解決。

  解決辦法:

     ->打開linux系統(tǒng)根目錄/下的etc下面的配置文件:vi /etc/sysctl.conf

     ->往sysctl.conf添加如下內(nèi)容:

net.core.rmem_max = 2097152

net.core.wmem_max = 2097152

其中net.core.wmem_max是發(fā)送緩沖區(qū)上限,net.core.rmem_max 是接收緩沖區(qū)上限。

    ->執(zhí)行配置:sysctl -p

   解決詳情請參考: WildFly配置與維護(hù)之QA:the receive buffer of socket MulticastSocket was set to 25MB, but the OS only allocated 20.97MB.

   警告2:

  ARJUNA016009: Caught:: java.lang.ClassCastException: org.infinispan.transaction. TransactionTable cannot be cast to org.infinispan.transaction.xa.XaTransaction 
at org.jboss.as.clustering.infinispan.subsystem.CacheService$InfinispanXAResourceRecovery.getXAResources(CacheService. java:112 )
at com.arjuna.ats.internal.jbossatx.jta.XAResourceRecoveryHelperWrapper.getXAResources(XAResourceRecoveryHelperWrapper.java:51) [narayana-jts-integration-5.0.0.M3. jar:5.0.0.M3  (revision: ${buildNumber})]
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecoveryForRecoveryHelpers(XARecoveryModule. java:503 ) [narayana-jts-jacorb-5.0.0.M3. jar:5.0.0.M3  (revision: ${buildNumber})]
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule. java:159 ) [narayana-jts-jacorb-5.0.0.M3. jar:5.0.0.M3  (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery. java:743 ) [narayana-jts-jacorb-5.0.0.M3. jar:5.0.0.M3  (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery. java:371 ) [narayana-jts-jacorb-5.0.0.M3. jar:5.0.0.M3  (revision: ${buildNumber})]              

   解決方法:

   打開主控制器的domain.xml文件找到如下配置,增加紅色字段配置即可,如下所示:

<cache-container name="web" aliases="standard-session-cache" default-cache="repl" module="org.wildfly.clustering.web.infinispan">
<transport lock-timeout="60000"/>
<replicated-cache name="repl" mode="ASYNC" batching="true">
<transaction mode="NONE"/>
<eviction strategy="NONE"/>
<file-store/>
</replicated-cache>
<replicated-cache name="sso" mode="SYNC" batching="true"/>
<distributed-cache name="dist" l1-lifespan="0" mode="ASYNC" batching="true">
<file-store/>
</distributed-cache>
</cache-container>

  具體參考 WildFly配置與維護(hù)之QA: TransactionTable cannot be cast to org.infinispan.transaction.xa.XaTransaction

(5)測試集群

    1)啟動兩機(jī)服務(wù)器(先主后從)

       主機(jī)上出現(xiàn)如下圖所示,則表示集群部署成功:

       
   2)訪問主機(jī)上wildfly web控制臺

      看到如下結(jié)果則表示集群部署成功:

    
    3)部署war應(yīng)用

         點擊“Add”添加項目,再點擊“Assign",選擇main-server-group,如下所示:

       

          

        4)訪問應(yīng)用

           待應(yīng)用部署到master和slave上的各個節(jié)點上去之后,通過瀏覽器來訪問之前部署的應(yīng)用,因為筆者在主從機(jī)各個節(jié)點之間設(shè)置的偏移量間隔是100,所以訪問的端口也是從第一個server節(jié)點(server-one)8180(原8080+100)一直到8680都是可以訪問的(注意主控制器和從機(jī)的IP不一致,訪問的URL中的IP也要按照對應(yīng)的)測試結(jié)果如下:

         主控制器8180端口:

          

        主控制器8280端口:

         

        主控制器8380端口:

         
   注意:在沒有設(shè)置linux系統(tǒng)的相關(guān)配置的情況下,從機(jī)上的應(yīng)用是不能訪問的,提示192.168.7.128連接失敗。
  具體問題如下:

      在主控制器的控制臺中部署好項目并且主從服務(wù)器都啟動的情況下,主控制器可以訪問部署的項目,但是卻無法訪問從機(jī)上的應(yīng)用,但是同時主機(jī)和從機(jī)之間可以ping的通,網(wǎng)上查閱資料后,解決方法是關(guān)閉虛擬機(jī)中的防火墻服務(wù)。linux在命令行模式下啟動和停止防火墻的命令如下: 
       service iptables stop --停止 
       service iptables start --啟動

     根據(jù)資料介紹,筆者將linux的防火墻關(guān)閉,如下所示:

     

     將可以訪問,如下所示:

      

     但是在實際應(yīng)用中,關(guān)閉防火墻降低的服務(wù)器的安全性,不能關(guān)閉防火墻,因此修改防火墻設(shè)置即可,具體設(shè)置步驟如下:

      ->打開/etc/sysconfig/iptables 文件;

      ->如果要開放8680端口,在里面添加一條 (其余類似)
            -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8680 -j ACCEPT    

      ->最終開放了8480、8580、8680端口,如下所示:

         

      ->開啟防火墻,如下所示:

         

      最終能正常訪問,如下:

        

     從機(jī)的8480端口:

 
       
   

    從機(jī)的8580端口:

 
     
   

   同樣訪問192.168.7.128:8680也是可以的。

   至此,wildfly的兩種模式的四種集群方式的配置已經(jīng)完成,希望能給讀者帶來幫助,若發(fā)現(xiàn)不當(dāng),歡迎您批評指正!

 

附錄:wildfly-8.0.0.Alpha4下載地址:      http://www./download/

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩人妻一区中文字幕| 亚洲精品国男人在线视频| 婷婷伊人综合中文字幕| 亚洲中文字幕乱码亚洲| 天海翼高清二区三区在线| 综合久综合久综合久久| 中文字幕一区二区三区大片| 亚洲精品有码中文字幕在线观看| 精品午夜福利无人区乱码| 国产一级不卡视频在线观看| 日韩不卡一区二区在线| 国产一区二区三区四区中文| 粉嫩内射av一区二区| 亚洲中文字幕在线视频频道| 亚洲国产天堂av成人在线播放| 日韩偷拍精品一区二区三区| 老司机激情五月天在线不卡| 91人妻人人做人碰人人九色| 日韩欧美在线看一卡一卡| 国产精品一区二区三区激情| 99国产成人免费一区二区| 亚洲精品福利视频在线观看| 亚洲男人天堂成人在线视频| 国产精品成人一区二区在线| 国产精品偷拍视频一区| 成人午夜在线视频观看| 丰满人妻熟妇乱又乱精品古代| 免费观看一区二区三区黄片| 国产精品欧美日韩中文字幕| 在线观看那种视频你懂的| 欧美日韩国产综合特黄| 樱井知香黑人一区二区| 日韩一区二区三区四区乱码视频| 日韩不卡一区二区视频| 国产一区二区精品丝袜| 色无极东京热男人的天堂| 亚洲精品成人福利在线| 有坂深雪中文字幕亚洲中文| 国产目拍亚洲精品区一区| 欧美一区日韩一区日韩一区| 日韩一区二区三区四区乱码视频|