第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)
/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)
/subsystem=messaging-activemq/server=default:read-children-resources(child-type=http-acceptor,include-runtime=true)
他のアクセプターおよびコネクタータイプは同じ構文に従います。child-type で remote-connector や in-vm-acceptor などのアクセプタータイプまたはコネクタータイプを指定するだけです。