第2章 ネットワーク接続: アクセプターとコネクター
AMQ Broker では、network と In-VM の 2 種類の接続が使用されます。ネットワーク接続は、同じサーバーまたは物理的にリモート上に関係なく、2 つの当事者が異なる仮想マシンにある場合に使用されます。仮想マシン内の接続は、クライアント (アプリケーションかサーバーかに関係なく) がブローカーと同じ仮想マシンにある場合に使用されます。
ネットワーク接続は Netty に依存します。Netty は、複数の方法でネットワーク接続を設定できるようにする、高パフォーマンスの低レベルネットワークライブラリーです。Java IO または NIO、TCP ソケット、SSL/TLS、または HTTP または HTTPS でのトンネリングの使用。Netty は、すべてのメッセージングプロトコルに単一のポートを使用することもできます。ブローカーは、使用されているプロトコルを自動的に検出し、さらに処理するために受信メッセージを適切なハンドラーに送ります。
ネットワーク接続の設定内の URI はそのタイプを決定します。たとえば、URI で vm
を使用すると、In-VM 接続が作成されます。以下の例では、acceptor
の URI が vm
で始まることに注意してください。
<acceptor name="in-vm-example">vm://0</acceptor>
URI で tcp
を使用すると、ネットワーク接続が作成されます。
<acceptor name="network-example">tcp://localhost:61617</acceptor>
本章では、最初にネットワーク接続、アクセプター、コネクターに固有の 2 つの設定要素について説明します。次に、TCP、HTTP、および SSL/TLS ネットワーク接続の設定手順と、In-VM 接続について説明します。
2.1. アクセプター
AMQ Broker でネットワーク接続を説明する際に最も重要な概念の 1 つが acceptor
です。アクセプターは、ブローカーへの接続方法を定義します。以下は、BROKER_INSTANCE_DIR/etc/broker.xml
設定ファイル内で見つかった acceptor
の典型的な設定です。
<acceptors> <acceptor name="example-acceptor">tcp://localhost:61617</acceptor> </acceptors>
各 acceptor
は acceptors
要素内でグループ化されることに注意してください。サーバーごとに一覧表示できるアクセプターの数の上限はありません。
アクセプターの設定
acceptor
に定義された URI のクエリー文字列にキーと値のペアを追加して acceptor
を設定します。以下の例のように、セミコロン (';') を使用して複数のキーと値のペアを区切ります。sslEnabled=true
で始まる URI の最後に複数のキーと値のペアを追加して、SSL/TLS のアクセプターを設定します。
<acceptor name="example-acceptor">tcp://localhost:61617?sslEnabled=true;key-store-path=/path</acceptor>
connector
設定パラメーターの詳細は、Acceptor and Connector Configuration Parameters を参照してください。