第8章 メッセージングトランスポートの設定
ここでは、JBoss EAP メッセージングトランスポート (特にコネクターとアクセプター) を理解するために必要な概念について説明します。アクセプターは、サーバーが接続を許可する方法を定義するためにサーバーで使用されます。一方、コネクターはクライアントのサーバーへの接続方法を定義するためにクライアントで使用されます。それぞれの概念を順番に説明し、実用的な例として、クライアントが JNDI または Core API を使用した、JBoss EAP メッセージングサーバーへの接続方法を示します。
8.1. アクセプターおよびコネクターのタイプ
JBoss EAP の設定では、3 つの主要なタイプのアクセプターとコネクターが定義されています。
in-vm
: In-vm は Intra Virtual Machine の省略形です。クライアントおよびサーバーの両方が同じ JVM で実行されている場合は、このコネクタータイプを使用します (例: Message Driven bean (MDB) が JBoss EAP の同じインスタンスで実行されている場合)。
http
: クライアントとサーバーが異なる JVM で実行されている場合に使用します。undertow
サブシステムのデフォルトのポートである 8080
を使用すると、HTTP による多重メッセージ通信が可能になります。Red Hat は、クライアントおよびサーバーが異なる JVM で実行されている場合、特にクラウド環境におけるポート管理などを考慮して、http
コネクターを使用することを推奨します。
remote
: リモートトランスポートは、クライアントとサーバーが異なる JVM で実行されている場合に、ネイティブ TCP 通信に使用される Netty ベースのコンポーネントです。このコンポーネントは http
を使用できない場合の代替手段となります。
クライアントは、いずれかのサーバーのアクセプターと互換性のあるコネクターを使用する必要があります。たとえば、in-vm-connector
のみが in-vm-acceptor
に接続でき、http-connector
のみが http-acceptor
に接続できます。
管理 CLI の read-children-attributes
操作を使用すると、指定のアクセプターまたはコネクタータイプの属性を一覧表示できます。たとえば、デフォルトのメッセージングサーバーのすべての http-connectors
の属性を表示するには、以下の入力を行います。
/subsystem=messaging-activemq/server=default:read-children-resources(child-type=http-connector,include-runtime=true)
同様のコマンドを使用して、すべての http-acceptors
の属性を読み込みます。
/subsystem=messaging-activemq/server=default:read-children-resources(child-type=http-acceptor,include-runtime=true)
他のアクセプターおよびコネクタータイプは同じ構文に従います。child-type
で remote-connector
や in-vm-acceptor
などのアクセプタータイプまたはコネクタータイプを指定するだけです。