Microsoft Azure での Red Hat JBoss Enterprise Application Platform の使用
高可用性の設定など、Microsoft Azure で Red Hat JBoss Enterprise Application Platform を使用する手順
概要
第1章 JBoss EAP on Microsoft Azure について リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP 8.0 は、Azure で JBoss EAP を実行するためにサポートされる特定の設定内で使用する限り、Microsoft Azure プラットフォームで使用できます。クラスター化された JBoss EAP 環境を設定する場合は、Azure で JBoss EAP クラスタリング機能を使用するために必要な特定の設定を適用する必要があります。
第2章 Boss EAP on Microsoft Azure のサブスクリプションモデル リンクのコピーリンクがクリップボードにコピーされました!
Azure に JBoss EAP をデプロイするには、Bring Your Own subscription (BYOS) と Pay-as-you-go (PAYG) の 2 つのサブスクリプションモデルから選択できます。
2 つの製品の違いは次のとおりです。
- BYOS
- 既存の Red Hat サブスクリプションをすでにお持ちの場合は、それを使用して、BYOS モデルを使用して Azure に JBoss EAP をデプロイできます。詳細は、Red Hat Cloud Access について を参照してください。
- PAYG
- 既存の Red Hat サブスクリプションをお持ちでない場合は、PAYG モデルを使用して、使用したコンピューティングリソースの数に基づいて支払うことを選択できます。
第3章 Red Hat Cloud Access 製品ページ リンクのコピーリンクがクリップボードにコピーされました!
既存の Red Hat サブスクリプションがある場合、Red Hat Cloud Access は、Amazon EC2 や Microsoft Azure などの Red Hat 認定クラウドインフラストラクチャープロバイダーで JBoss EAP をサポートします。Red Hat Cloud Access を使用すると、サブスクリプションを従来のサーバーおよびパブリッククラウドベースのリソースの間で費用対効果の高い方法で移動できます。
詳細は、Red Hat Cloud Access on the Customer Portal を参照してください。
第4章 Microsoft Azure で JBoss EAP を実行する場合にサポートされる構成 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Microsoft Azure で JBoss EAP を実行する場合にサポートされる構成を説明します。
4.1. JBoss EAP を使用する場合にサポートされる仮想マシンオペレーティングシステム リンクのコピーリンクがクリップボードにコピーされました!
以下は、Microsoft Azure で JBoss EAP を使用するための唯一の仮想マシンオペレーティングシステムです。
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
- Microsoft Windows Server 2019
- Microsoft Windows Server 2022
Red Hat Cloud Access プログラムを使用し、JBoss EAP サブスクリプションを使用して独自の Azure 仮想マシン、または Microsoft Azure Marketplace から上記のいずれかの On-Demand オペレーティングシステムに JBoss EAP をインストールできます。仮想マシンのオペレーティングシステムサブスクリプションは JBoss EAP サブスクリプションとは異なることに注意してください。
上記のオペレーティングシステムの制限以外に、サポート対象の Java Development Kit (JDK) ベンダーおよびバージョンなどの JBoss EAP のサポートされる設定に関する詳細は、カスタマーポータルを参照してください。
4.2. JBoss EAP クラスタリングの Azure Autoscale 機能 リンクのコピーリンクがクリップボードにコピーされました!
垂直スケーリングは、すべての JBoss EAP クラスタリングユースケースでサポートされます。
+ 次の水平スケーリングのユースケースもサポートされています。
分散 HTTP セッション
-
hotrod-session-management経由 infinispan-session-management経由-
invalidation-cacheと共有の永続キャッシュストアの使用
-
-
分散型
@StatefulEJBinfinispan-passivation-store経由-
invalidation-cacheと共有の永続キャッシュストアの使用
-
分散 EJB タイマー
-
invalidation-cacheと共有の永続キャッシュストアの使用
-
JPA/Hibernate 2 次キャッシュ
- 無効化またはローカルエンティティー/コレクション/クエリーのキャッシュのみ
パブリック WildFly クラスタリング API
-
CommandDispatcherAPI GroupAPI共有の永続キャッシュストアには、Red Hat Datagrid (RHDG) クラスターが推奨されます。
サポートされていない JBoss EAP クラスタリングのユースケースのリストは、JBoss EAP クラスタリングでサポートされていない Azure Autoscale の水平スケーリング を参照してください。
JBoss EAP クラスタリングインスタンスを設定するには、Microsoft Azure で JBoss EAP のクラスタリングインスタンスを設定する を参照してください。
-
第5章 Microsoft Azure で JBoss EAP を使用する場合にサポート対象外の機能 リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure で JBoss EAP を使用する場合、サポート対象外の機能がいくつかあります。
- ActiveMQ Artemis 共有ストアを使用した高可用性
- Artemis 共有ストアを使用した JBoss EAP メッセージング高可用性は、Microsoft Azure ではサポートされていません。Azure で JBoss EAP メッセージングの高可用性を設定するには、Microsoft Azure で ActiveMQ Artemis の高可用性を設定する セクションの手順を参照してください。
- mod_custer Advertising
- JBoss EAP を Undertow mod_cluster プロキシーロードバランサーとして使用する場合は、Azure UDP マルチキャストの制限により mod_cluster アドバタイズ機能がサポートされません。詳細は、Microsoft Azure で mod_cluster を使用した負荷分散を設定する を参照してください。
- 仮想マシンのスケールセット
自動スケールダウン機能は、スケールダウンプロセス中にすべてのトランザクションが完了するまで待機しないため、Microsoft Azure 仮想マシンスケールセット (VMSS) のトランザクションはサポートされていません。これにより、データの整合性の問題が発生する可能性があります。Microsoft Azure VMSS は EAP VM を破棄し、適切なシャットダウンをサポートしないため、EAP クラスタリングに次の制限が生じます。
-
HA のサーバー側の状態を Red Hat Data Grid などのサードパーティーサービスに外部化する必要がある設定では、VMSS をサポートする必要があります。JBoss EAP は
HttpSessionsの外部化に対して VMSS をサポートしますが、ステートフルセッション Bean に対してはサポートしません。
-
HA のサーバー側の状態を Red Hat Data Grid などのサードパーティーサービスに外部化する必要がある設定では、VMSS をサポートする必要があります。JBoss EAP は
- Azure App Service
JTS は、JBoss EAP Azure App Service オファリングではサポートされていません。
注記JTS はサポートされていませんが、Jakarta トランザクションは次の条件下でサポートされます。
- インスタンスの自動削除は無効になっています。
- たとえば Azure ダッシュボードを使用して実行中のインスタンスの数を減らしても、インスタンスが手動で削除されることはありません。
また、Jakarta Enterprise Beans-remoting 経由のトランザクションはサポートされません。
- JBoss EAP クラスタリングではサポートされていない Azure Autoscale の水平スケーリング
水平スケーリングの場合、次の JBoss EAP クラスタリングユースケースはサポートされません。
分散 HTTP セッション
infinispan-session-management- 分散、複製、または分散キャッシュの使用
分散型
@StatefulEJBinfinispan-passivation-store経由- 分散、複製、または分散キャッシュの使用
分散 EJB タイマー
- 分散、複製、または分散キャッシュを使用する場合
- シングルトン MDB
JPA/Hibernate 2 次キャッシュ
- 分散、複製、または分散するエンティティー/コレクション/クエリーのキャッシュ
- シングルトンデプロイメント
- シングルトン MSC サービス
パブリック WildFly
clusteringAPI:-
RegistryAPI ServiceProviderRegistryAPIサポートされている JBoss EAP クラスタリングのユースケースのリストは、JBoss EAP クラスタリングの Azure Autoscale 機能 を参照してください。
JBoss EAP クラスタリングインスタンスを設定するには、Microsoft Azure で JBoss EAP のクラスタリングインスタンスを設定する を参照してください。
-
第6章 JBoss EAP をホストするための Microsoft Azure 環境を作成する リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure 環境で JBoss EAP インスタンスをホストする仮想マシンを作成します。仮想マシンは、Standard_A2 以上の Azure サイズを使用する必要があります。
Azure On-Demand Premium イメージを使用して仮想マシンを作成したり、仮想マシンを手動で作成したりできます。
Red Hat Enterprise Linux 仮想マシンの場合は、カスタマーポータルの手順を参照してください。
- Microsoft Windows Server 仮想マシンの場合は、Microsoft Azure で Windows Server 仮想マシンを作成する方法の説明である Microsoft Azure ドキュメント を参照してください。
JBoss EAP Azure 仮想マシンイメージが Marketplace で利用できるようになりました。
JBoss EAP の高可用性を設定する場合は、同じ仮想ネットワーク内に仮想マシンを作成する必要があります。
第7章 Microsoft Azure へのサーバーのインストール リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure Marketplace の Red Hat Enterprise Linux On-Demand 仮想マシンを使用している場合は、.zip ファイルまたはインストーラーの方法を使用して JBoss EAP をインストールする必要があります。Red Hat サブスクリプション管理には、Red Hat Enterprise Linux On-Demand 仮想マシンを登録しないでください。その仮想マシンへの請求が重複してしまいます。
Microsoft Azure 環境の仮想マシンへの JBoss EAP のインストールは、通常の JBoss EAP インストールと同じです。手順は、Red Hat JBoss Enterprise Application Platform インストール方法 を参照してください。
第8章 Microsoft Azure で動作するように JBoss EAP サブシステムを設定する リンクのコピーリンクがクリップボードにコピーされました!
Amazon EC2 や Microsoft Azure などのクラウドプラットフォームで適切に動作するように、一部の JBoss EAP サブシステムを設定する必要があります。これは、JBoss EAP サーバーは通常、クラウドプラットフォームからのみ確認可能な 10.x.x.x などのクラウド仮想マシンのプライベート IP アドレスにバインドされているために必要です。特定のサブシステムでは、このアドレスをサーバーのパブリック IP アドレスにマッピングする必要もあります。これは、クラウド外から見えるものです。
8.1. Microsoft Azure で動作するように Web サービスサブシステムを設定する リンクのコピーリンクがクリップボードにコピーされました!
クライアントが Service.create(wsdlURL, serviceName); を使用して Web サービスリクエストを行うと、ユーザーはサーバーのパブリック IP アドレスに接続しますが、その後、webservices サブシステムのサーバー設定ファイルに定義されたアドレスにリダイレクトされます。
デフォルトでは、このアドレスは ${jboss.bind.address:127.0.0.1} です。つまり、クラウドプラットフォームでは呼び出し元はサーバーのプライベート IP アドレスにリダイレクトされ、要求を解決できません。サーバーのパブリック IP アドレスは、wsdl-host 要素で設定する必要があります。
手順
wsdl-host要素でサーバーのパブリック IP アドレスを設定します。/subsystem=webservices:write-attribute(name=wsdl-host,value=<PUBLIC_IP_ADDRESS>)
/subsystem=webservices:write-attribute(name=wsdl-host,value=<PUBLIC_IP_ADDRESS>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2. Microsoft Azure で動作するようにメッセージングサブシステムを設定する リンクのコピーリンクがクリップボードにコピーされました!
クラウドプラットフォームでメッセージングを使用する場合は、クライアントが使用する接続ファクトリーには、サーバーのパブリック IP アドレスを指すコネクターが必要です。
そのため、full プロファイルを実行している JBoss EAP サーバーに対して新しいコネクターとソケットバインディングを作成する必要があります。
前提条件
-
JBoss EAP が
fullプロファイルを実行している。
手順
参照される
http-publicソケットバインディングをsocket-binding-group内に作成します。/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=http-public:add(host=<PUBLIC_IP_ADDRESS>,port=${jboss.http.port:8080})/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=http-public:add(host=<PUBLIC_IP_ADDRESS>,port=${jboss.http.port:8080})Copy to Clipboard Copied! Toggle word wrap Toggle overflow messagingサブシステムに新しいhttp-connector要素を作成します。/subsystem=messaging-activemq/server=default/http-connector=http-public-connector:add(endpoint=http-acceptor,socket-binding=http-public)
/subsystem=messaging-activemq/server=default/http-connector=http-public-connector:add(endpoint=http-acceptor,socket-binding=http-public)Copy to Clipboard Copied! Toggle word wrap Toggle overflow connection-factoryにconnectorsを設定します。これは、クライアントによって使用されます。たとえば、デフォルトの接続としてのRemoteConnectionFactoryの設定は以下のようになります。/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=connectors, value=["http-public-connector"]
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=connectors, value=["http-public-connector"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3. Microsoft Azure で高可用性を実現するためのリモートサブシステムを設定する リンクのコピーリンクがクリップボードにコピーされました!
クラウドプラットフォーム上のクラスター化された Jakarta Enterprise Beans で JBoss EAP HA 機能を使用している場合は、Jakarta Enterprise Beans クライアントがクラスタービューの更新を受け取るために remoting サブシステムに追加の設定が必要になります。
手順
remotingサブシステムソケットバインディングのclient-mappingsを設定します。/socket-binding-group=standard-sockets/socket-binding=http:write-attribute(name=client-mappings,value=[{ "destination-address" => "<PUBLIC_IP_ADDRESS>", "destination-port" => "8080" }])/socket-binding-group=standard-sockets/socket-binding=http:write-attribute(name=client-mappings,value=[{ "destination-address" => "<PUBLIC_IP_ADDRESS>", "destination-port" => "8080" }])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第9章 JBoss EAP での Microsoft Azure の設定 リンクのコピーリンクがクリップボードにコピーされました!
この章では、JBoss EAP を Microsoft Azure で実行するために必要な設定を説明します。
9.1. Red Hat Enterprise Linux で起動時に JBoss EAP をサービスとして起動する リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP を Microsoft Azure の Red Hat Enterprise Linux でサービスとして起動する場合は、JBoss EAP サービスの設定を変更して、Azure 仮想マシンのホスト名が初期化された後に開始されるようにする必要があります。
手順
/etc/systemd/system/multi-user.target.wants/eap8-standalone.serviceファイルを更新して、waagent.serviceへの依存関係を追加します。以下の行を置き換えます。
After=syslog.target network.target
After=syslog.target network.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記を以下のように置き換えます。
After=syslog.target network.target waagent.service Requires=waagent.service
After=syslog.target network.target waagent.service Requires=waagent.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2. Microsoft Azure で mod_cluster を使用して負荷分散を設定する リンクのコピーリンクがクリップボードにコピーされました!
mod_cluster アドバタイズが Azure でサポートされていない ため、JBoss EAP の負荷分散環境を設定する場合は、すべてのバランサーとワーカーが内部の Microsoft Azure 仮想ネットワークでアクセス可能な IP アドレスにバインドされる必要があります。
バランサーおよびワーカーは、0.0.0.0 ではなく、実際の内部 Azure 仮想 IP アドレス (172.28.0.2) にバインドする必要があります。
また、mod_cluster アドバタイズが利用できないため、JBoss EAP を Undertow mod_cluster プロキシーロードバランサーとして使用する場合は、以下のように各ワーカーノードが各バランサーの IP アドレスとポートが含まれるプロキシーリストを使用するよう設定する必要があります。
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=proxy-one:add(host="BALANCER_IP_ADDRESS", port="BALANCER_PORT") /subsystem=modcluster/mod-cluster-config=configuration:list-add(name=proxies,value=proxy-one)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=proxy-one:add(host="BALANCER_IP_ADDRESS", port="BALANCER_PORT")
/subsystem=modcluster/mod-cluster-config=configuration:list-add(name=proxies,value=proxy-one)
9.3. Microsoft Azure で ActiveMQ Artemis の高可用性を設定する リンクのコピーリンクがクリップボードにコピーされました!
Artemis 共有ストアを使用した JBoss EAP メッセージング高可用性は、Microsoft Azure ではサポートされていません。Azure で JBoss EAP メッセージングの高可用性を設定するには、AZURE_PING JGroups 検出プロトコル でレプリケートされたジャーナルを使用する必要があります。
その場合は、TCP JGroups スタックを使用します。レプリケートされたジャーナルの使用に関する詳細は、JBoss EAP の メッセージングの設定 で データレプリケーション を参照してください。
AZURE_PING で TCP JGroups スタックを設定した後、JGroups スタックを messaging-activemq サブシステムの discovery-group および broadcast-group jgroups-cluster 設定に追加する必要があります。詳細は、JBoss EAP の メッセージングの設定 で サーバー検出 を参照してください。
9.4. Microsoft Azure で JBoss EAP のクラスタリングインスタンスを設定する リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP のクラスタリングは Microsoft Azure でサポートされています。クラスタリングを有効にするには、Microsoft Azure Web アプリケーションを仮想ネットワークと統合する必要があります。統合が完了した後に Web アプリケーションを再起動すると、JBoss EAP インスタンスがクラスター化された設定で起動します。
WEBSITE_DISABLE_CLUSTERING のアプリケーション設定を作成して、クラスタリングを無効にできます。アプリケーション設定には任意の値を割り当てることができます。
JBoss EAP アプリケーションを Microsoft Azure 上の JBoss EAP に移行する方法の詳細は、JBoss EAP on Microsoft Azure 記事の Migrate JBoss EAP applications to JBoss EAP on Azure App Service を参照してください。
クラスタリングの詳細は、JBoss EAP on Microsoft Azure 記事の Clustering を参照してください。
第10章 Microsoft Azure で JBoss EAP 高可用性を使用する リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure は、UDP マルチキャストを基にした JGroups 検出プロトコルをサポートしていません。他の JGroups 検出プロトコル (静的設定 (TCPPING))、共有データベース (JDBC_PING)、共有ファイルシステムベースの ping (FILE_PING)、または TCPGOSSIP などを使用することは可能ですが、AZURE_PING は Azure 用に特別に開発した共有ファイル検出プロトコルを使用することを強く推奨します。
10.1. JBoss EAP 高可用性のための AZURE_PING 設定 リンクのコピーリンクがクリップボードにコピーされました!
ここでは、AZURE_PING JGroups 検索プロトコルを使用するよう JBoss EAP クラスターを設定する方法を説明します。仮想マシンの作成時に前提条件 を満たしていることを確認します。
AZURE_PING は、Microsoft Azure ストレージアカウント内で共通の Blob コンテナーを使用します。AZURE_PING が使用できる Blob コンテナーがない場合は、仮想マシンがアクセスできる Blob コンテナーを作成します。
Blob コンテナーの作成後に、AZURE_PING を設定するために以下の情報が必要になります。
-
storage_account_name: blob コンテナーが含まれる Microsoft Azure ストレージアカウントの名前。 -
storage_access_key: ストレージアカウントのシークレットアクセスキー。 -
container:PINGデータに使用する blob コンテナーの名前。
以下の手順では、UDP JGroups スタックを使用して AZURE_PING を設定します。Azure で JBoss EAP メッセージング高可用性 を設定する場合は、代わりに TCP JGroups スタックで AZURE_PING を設定する必要があります。
AZURE_PING を JGroups 検索プロトコルとして使用するように JBoss EAP を設定するには、事前設定された JBoss EAP 設定ファイルのサンプルを使用する か、既存の設定を変更する ことができます。
10.2. サンプル設定ファイルを使用して高可用性を設定する リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP には、Microsoft Azure のスタンドアロンサーバーのクラスタリングを設定するための設定ファイルのサンプルが含まれています。これらのファイルは EAP_HOME/docs/examples/configs/ にあり、standalone-azure-ha.xml と standalone-azure-full-ha.xml です。
JBoss EAP の 設定ガイド で、サーバープロファイルの 相違点 を参照してください。
これらの設定ファイルのサンプルは、Microsoft Azure でクラスタリングを使用するために事前設定されており、必要なのは Azure ストレージアカウントおよび blob コンテナーの値を指定することのみです。
必要な設定ファイルのサンプルを EAP_HOME/standalone/configuration/ にコピーします。
10.3. 既存サーバーの高可用性設定を変更する リンクのコピーリンクがクリップボードにコピーされました!
既存の JBoss EAP の高可用性設定を変更する場合は、jgroups サブシステムに以下の変更を加える必要があります。
手順
管理 CLI を起動し、サーバーを埋め込み、選択した設定ファイルにオフライン変更を行います。以下に例を示します。
EAP_HOME/bin/jboss-cli.sh [disconnected /] embed-server --server-config=standalone-ha.xml
$ EAP_HOME/bin/jboss-cli.sh [disconnected /] embed-server --server-config=standalone-ha.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、JGroups は UDP スタックを使用します。別のスタックを使用していた場合は、UDP スタックの使用に戻ります。
[standalone@embedded /] /subsystem=jgroups/channel=ee:write-attribute(name=stack,value=udp)
[standalone@embedded /] /subsystem=jgroups/channel=ee:write-attribute(name=stack,value=udp)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のバッチコマンドを実行して既存の UDP スタックを削除し、Microsoft Azure 用に設定された新しい UDP スタックを挿入します。
重要次のコマンドで使用される
storage_access_keyのエンコードは Base64 である必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記設定ファイルで Microsoft Azure ストレージアカウントおよび blob コンテナーの値を保存する場合は、上記の設定のシステムプロパティーの参照を Azure 環境の値に置き換えます。以下のコマンドは、JBoss EAP を起動する例で、システムプロパティーを使用します。
設定ファイルのスタック XML は以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 埋め込みサーバーを停止し、管理 CLI を終了します。
[standalone@embedded /] stop-embedded-server [disconnected /] exit
[standalone@embedded /] stop-embedded-server [disconnected /] exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4. Microsoft Azure で JBoss EAP 高可用性を使用する リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure で高可用性を使用して JBoss EAP を起動するには、以下を行う必要があります。
- AZURE_PING 検索プロトコルで設定 された設定ファイルを使用して、Microsoft Azure ストレージアカウントおよび blob コンテナーに必要な値を指定します。
privateインターフェイスを、トラフィックのクラスタリングに使用される Microsoft Azure 内部 IP アドレスにバインドします。これは、以下のように、起動時に行うか、JBoss EAP の 設定ガイド に示した設定 として実行することができます。警告セキュリティー上の理由から、クラスタリングトラフィックは意図しないネットワークに公開しないようにする必要があります。
これは、エンドポイントを Microsoft Azure 仮想ネットワークに制限するか、トラフィックをクラスタリングするための専用の仮想ネットワークと専用の仮想マシン NIC を作成して実行できます。
手順
以下のコマンドを使用して JBoss EAP の高可用性インスタンスを起動します。Microsoft Azure ストレージアカウントおよび blob コンテナーの値を設定ファイルに保存した場合は、
-Djboss.jgroups.azure_pingシステムプロパティーの定義を省略できます。EAP_HOME/bin/standalone.sh -b <IP_ADDRESS> -bprivate <IP_ADDRESS> --server-config=<EAP_CONFIG_FILE>.xml -Djboss.jgroups.azure_ping.storage_account_name=<STORAGE_ACCOUNT_NAME> -Djboss.jgroups.azure_ping.storage_access_key=<STORAGE_ACCESS_KEY> -Djboss.jgroups.azure_ping.container=<CONTAINER_NAME>
EAP_HOME/bin/standalone.sh -b <IP_ADDRESS> -bprivate <IP_ADDRESS> --server-config=<EAP_CONFIG_FILE>.xml -Djboss.jgroups.azure_ping.storage_account_name=<STORAGE_ACCOUNT_NAME> -Djboss.jgroups.azure_ping.storage_access_key=<STORAGE_ACCESS_KEY> -Djboss.jgroups.azure_ping.container=<CONTAINER_NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
EAP_HOME/bin/standalone.sh -b 172.28.0.2 -bprivate 172.28.0.2 --server-config=standalone-azure-ha.xml -Djboss.jgroups.azure_ping.storage_account_name=my_storage_account -Djboss.jgroups.azure_ping.storage_access_key=y7+2x7P68pQse9MNh58Bkk5po9OGzeJc+0IRqYcQ9Cr/Sp4xiUFJVlbY+MGXJRNx3syksikwm4tOYlFgjvoCmw== -Djboss.jgroups.azure_ping.container=my_blob_container
EAP_HOME/bin/standalone.sh -b 172.28.0.2 -bprivate 172.28.0.2 --server-config=standalone-azure-ha.xml -Djboss.jgroups.azure_ping.storage_account_name=my_storage_account -Djboss.jgroups.azure_ping.storage_access_key=y7+2x7P68pQse9MNh58Bkk5po9OGzeJc+0IRqYcQ9Cr/Sp4xiUFJVlbY+MGXJRNx3syksikwm4tOYlFgjvoCmw== -Djboss.jgroups.azure_ping.container=my_blob_containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記JBoss EAP サブシステムは必要なときにのみ起動されるため、分散可能なアプリケーションを JBoss EAP サーバーにデプロイして、高可用性 JBoss EAP サブシステムを起動する必要があります。
クラスター内で別の JBoss EAP インスタンスを起動すると、クラスター内で最初のサーバーのコンソールログに以下のようなログが表示されるはずです。
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,eap-server-1) ISPN000094: Received new cluster view for channel server: [eap-server-1|1] (2) [eap-server-1, eap-server-2]
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (thread-2,ee,eap-server-1) ISPN000094: Received new cluster view for channel server: [eap-server-1|1] (2) [eap-server-1, eap-server-2]
10.5. Blob コンテナー内の古い検出ファイルを消去する リンクのコピーリンクがクリップボードにコピーされました!
AZURE_PING を使用する JBoss EAP クラスターが異常終了した場合 (たとえば、kill -9 を使用して JBoss EAP プロセスを終了する場合など)、一部の古い検出ファイルは Blob コンテナーに残される可能性があります。
これらのファイルは、通常、正常なクラスターのシャットダウン時にクリーンアップされます。ただし、正常でないシャットダウンから残ると、オンラインではなくなったノードとの通信を試行するクラスターメンバーの起動パフォーマンスに影響する可能性があります。
これが問題となる場合は、以下の設定でクラスターの表示が変更されるたびに、クラスターコーディネーターがすべての検出ファイルを削除して更新できます。
/subsystem=jgroups/stack=udp/protocol=azure.AZURE_PING/property=remove_all_data_on_view_change:add(value=true)
/subsystem=jgroups/stack=udp/protocol=azure.AZURE_PING/property=remove_all_data_on_view_change:add(value=true)
または、各表示の変更でコンテナーをクリーンアップすることが理想的でない場合、クラスターにジョインしようとするノードの結合試行回数を減らすことができます。デフォルトのジョイン試行数は 10 です。たとえば、結合試行の数を 3 に設定するには、次のコマンドを実行します。
/subsystem=jgroups/stack=udp/protocol=pbcast.GMS/property=max_join_attempts:add(value=3)
/subsystem=jgroups/stack=udp/protocol=pbcast.GMS/property=max_join_attempts:add(value=3)
古い検出ファイルは引き続き存在しますが、クラスターにジョインしようとしているノードは、オンラインでなくなったノードとの通信を試行するのに多くの時間を費やしません。
改訂日時: 2025-05-10