スタンドアロンモードのJBoss AS 7.1でクラスターを作成する方法は?

この記事は、個人的な経験に基づいて得られた、自分からのレシピで補足するために、ここで翻訳および公開されています。 誰かが半日または1日のグーグルと私が直面しなければならなかった多くの試行錯誤を救うという希望があります。 以下は私からの無料の翻訳と追加です。 解決すべき主なタスク:クラスターのすべてのノードへのユーザーセッションのレプリケーション。 セッションレプリケーションにより、クラスターノードの1つが失われた場合、バランサーはユーザーをユーザーの別のノードに透過的に切り替えることができます。 バランサーの作業はこの翻訳の範囲外であり、次の記事で説明します。



JBoss AS 7は以前のバージョンのJBossと根本的に異なるため、JBoss AS 7でクラスターを作成する場合は、問題が発生しないようにいくつかのことを知っておく必要があります。



JBoss AS 7にはドメインモードとスタンドアロンモードの2つのモードがあります。この記事ではオフラインモードについて説明します。 スタンドアロンモードでは、構成フォルダーにさまざまなXMLファイルがありますが、クラスタリングサポートはstandalone-ha.xmlおよびstandalone-full-ha.xmlにのみ含まれているため、起動時にそれらのいずれかを使用してください(startコマンドを参照)。 。



JBoss AS 7.1でクラスターを作成する手順




JBoss-as-7.1.1.Final.zipを解凍した後(トランスレーターから:バージョン7.2.2で検証済み)、スタンドアロンフォルダーの2つのコピーを作成し、たとえば、示すようにstandalone-node1standalone-node2に名前を変更します以下:

1ホーム/ユーザー/ jboss-as-7.1.1.Final / standalone-node1

2ホーム/ユーザー/ jboss-as-7.1.1.Final / standalone-node2

:後で参照できるように、 スタンドアロンフォルダーの元のコピーを保持してください。



ここで、クラスター内のノードとして機能するように、次のコマンドでJBossを実行する必要があります

Node1

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



Node2

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



どこで:

-c =使用するサーバー設定ファイル

-b = JBossがリッスンしているアドレスを指定するためのものです

-u =マルチキャストアドレス。 (トランスレーターから:ノードをクラスターに参加させるときに使用されると想定されていますが、これには問題がある可能性があります。以下を参照してください)

-Djboss.server.base.dir =ノードがデプロイされているフォルダーへのパス

-Djboss.node.name =ノード名

-Djboss.socket.binding.port-offset =ポートオフセット



:次のことに注意してください

-両方のノードに同じブロードキャストアドレスが必要です

-両方のノードに異なるノード名が必要です

-同じコンピューターで起動する場合、競合を避けるために、両方のノードに異なるポートオフセットが必要です。 ノードの1つでは、-Djboss.socket.binding.port-offsetパラメーターを省略でき、デフォルトでポートで開始されます。 また、このオプションは、異なるコンピューターで起動する場合には使用できません。



クラスター構成でノードを開始した後、変更は表示されません。 両方のノードがクラスター化されていることを確認するには、web.xmlに<distributable />タグを持つWebアプリケーションをデプロイする必要があります。 サンプルクラスターアプリケーションの1つをここからダウンロードできます。



ClusterWebApp.warをロードした後、それを両方のノードの(/home/user/jboss-as-7.1.1.Final/standalone-nodeX/deployments)にコピーするだけで、その直後に同様のメッセージが表示されます:

JBossログ
18:32:46,863 INFO [stdout] (pool-13-thread-1) ------------------------------------------------------------------- 18:32:46,863 INFO [stdout] (pool-13-thread-1) GMS: address=node1/web, cluster=web, physical address=10.10.10.10:55300 18:32:46,863 INFO [stdout] (pool-13-thread-1) ------------------------------------------------------------------- 18:32:47,572 INFO [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (MSC service thread 1-8) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be pasivated. 18:32:47,581 INFO [org.infinispan.configuration.cache.EvictionConfigurationBuilder] (MSC service thread 1-1) ISPN000152: Passivation configured without an eviction policy being selected. Only manually evicted entities will be pasivated. 18:32:47,771 INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (pool-15-thread-1) ISPN000078: Starting JGroups Channel 18:32:47,791 INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (pool-15-thread-1) ISPN000094: Received new cluster view: [node1/web|1] [node1/web, node2/web]
      
      







翻訳者から


スタンドアロンだけでなくJBossフォルダー全体を複製する場合は、-Djboss.server.base.dirパラメーターを省略できます。



複数のIP


この記事およびWeb上のほとんどのリソースでは、1つの問題が解決されていません。 多くの(私を含む)開始時に-bパラメーター0.0.0.0を指定します。これは、利用可能なすべてのネットワークインターフェースでリッスンするようJBossに指示します。 これは、たとえば、サーバーに外部および内部IPアドレスがある場合、またはデフォルトでアクセス可能にする必要がある場合(たとえば、localhost)に必要です。 そのため、問題は、-bパラメーター0.0.0.0が指定されていると、JBossがクラスターに参加するために使用するjgroupが機能しなくなることです。 ノードが起動すると、メッセージが表示されます。

 GMS: address=node1/web, cluster=web, physical address=0.0.0.0:55200
      
      





そしてそれらを結合しようとすると、エラーが表示されます:

 [org.jgroups.protocols.UDP] (OOB-14,shared=udp) failed sending message to node2/web (117 bytes): java.lang.Exception: dest=/0.0.0.0:55500 (120 bytes), cause: java.net.BindException: Cannot assign requested address: Datagram send failed
      
      





私の知る限り、jgroupsは特定のIPアドレスを必要とし、抽象0.0.0.0での動作を拒否します。この場合の-u 230.0.0.4起動パラメーターは単に無視されます。



フォーラムの投稿から判断すると、-b 0.0.0.0起動パラメーターを指定することを除いて、JBossが複数のアドレスでリッスンするようにする他の方法はありません。 standalone-ha.xml / standalone-full-ha.xml設定ファイルで <inet-address value="${jboss.bind.address:127.0.0.1}"/> , , -b 0.0.0.0, .. .



: -Djgroups.bind_addr=IP- , jgroups . , -b 0.0.0.0, jgroups, . Windows :

GMS: address=node1/web, cluster=web, physical address=127.0.0.1:55200





, -b 0.0.0.0 -Djgroups.bind_addr=127.0.0.1.





: JBoss / JBoss 7, distributable-, "" . . 7- , , UDP ( -u). , , UDP- , , . UPD , , JBoss .



UPD jgroups 230.0.0.4, -u. ? , " IP Multicast 224.0.0.0 239.255.255.255 ". , , , , 230.0.0. 5 , , Windows, . - 230.0.0. 3 23 1 .0.0.4 - . , , , , , , " ".



.








タグ<any-address/>



を指定できます <inet-address value="${jboss.bind.address:127.0.0.1}"/>



, , -b 0.0.0.0, .. .



: -Djgroups.bind_addr=IP- , jgroups . , -b 0.0.0.0, jgroups, . Windows :

GMS: address=node1/web, cluster=web, physical address=127.0.0.1:55200





, -b 0.0.0.0 -Djgroups.bind_addr=127.0.0.1.





: JBoss / JBoss 7, distributable-, "" . . 7- , , UDP ( -u). , , UDP- , , . UPD , , JBoss .



UPD jgroups 230.0.0.4, -u. ? , " IP Multicast 224.0.0.0 239.255.255.255 ". , , , , 230.0.0. 5 , , Windows, . - 230.0.0. 3 23 1 .0.0.4 - . , , , , , , " ".



.




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



, , -b 0.0.0.0, .. .



: -Djgroups.bind_addr=IP- , jgroups . , -b 0.0.0.0, jgroups, . Windows :

GMS: address=node1/web, cluster=web, physical address=127.0.0.1:55200





, -b 0.0.0.0 -Djgroups.bind_addr=127.0.0.1.





: JBoss / JBoss 7, distributable-, "" . . 7- , , UDP ( -u). , , UDP- , , . UPD , , JBoss .



UPD jgroups 230.0.0.4, -u. ? , " IP Multicast 224.0.0.0 239.255.255.255 ". , , , , 230.0.0. 5 , , Windows, . - 230.0.0. 3 23 1 .0.0.4 - . , , , , , , " ".



.




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



, , -b 0.0.0.0, .. .



: -Djgroups.bind_addr=IP- , jgroups . , -b 0.0.0.0, jgroups, . Windows :

GMS: address=node1/web, cluster=web, physical address=127.0.0.1:55200

, -b 0.0.0.0 -Djgroups.bind_addr=127.0.0.1.





: JBoss / JBoss 7, distributable-, "" . . 7- , , UDP ( -u). , , UDP- , , . UPD , , JBoss .



UPD jgroups 230.0.0.4, -u. ? , " IP Multicast 224.0.0.0 239.255.255.255 ". , , , , 230.0.0. 5 , , Windows, . - 230.0.0. 3 23 1 .0.0.4 - . , , , , , , " ".



.








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



, , -b 0.0.0.0, .. .



: -Djgroups.bind_addr=IP- , jgroups . , -b 0.0.0.0, jgroups, . Windows :

GMS: address=node1/web, cluster=web, physical address=127.0.0.1:55200





, -b 0.0.0.0 -Djgroups.bind_addr=127.0.0.1.





: JBoss / JBoss 7, distributable-, "" . . 7- , , UDP ( -u). , , UDP- , , . UPD , , JBoss .



UPD jgroups 230.0.0.4, -u. ? , " IP Multicast 224.0.0.0 239.255.255.255 ". , , , , 230.0.0. 5 , , Windows, . - 230.0.0. 3 23 1 .0.0.4 - . , , , , , , " ".



.




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



, , -b 0.0.0.0, .. .



: -Djgroups.bind_addr=IP- , jgroups . , -b 0.0.0.0, jgroups, . Windows :

GMS: address=node1/web, cluster=web, physical address=127.0.0.1:55200





, -b 0.0.0.0 -Djgroups.bind_addr=127.0.0.1.





: JBoss / JBoss 7, distributable-, "" . . 7- , , UDP ( -u). , , UDP- , , . UPD , , JBoss .



UPD jgroups 230.0.0.4, -u. ? , " IP Multicast 224.0.0.0 239.255.255.255 ". , , , , 230.0.0. 5 , , Windows, . - 230.0.0. 3 23 1 .0.0.4 - . , , , , , , " ".



.




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



, , -b 0.0.0.0, .. .



: -Djgroups.bind_addr=IP- , jgroups . , -b 0.0.0.0, jgroups, . Windows :

GMS: address=node1/web, cluster=web, physical address=127.0.0.1:55200





, -b 0.0.0.0 -Djgroups.bind_addr=127.0.0.1.





: JBoss / JBoss 7, distributable-, "" . . 7- , , UDP ( -u). , , UDP- , , . UPD , , JBoss .



UPD jgroups 230.0.0.4, -u. ? , " IP Multicast 224.0.0.0 239.255.255.255 ". , , , , 230.0.0. 5 , , Windows, . - 230.0.0. 3 23 1 .0.0.4 - . , , , , , , " ".



.







All Articles