付録A アクセプターおよびコネクター設定パラメーター
以下の表は、Netty ネットワーク接続の設定に使用される利用可能なパラメーターの一部を示しています。パラメーターとその値は、接続文字列の URI に追加されます。詳細については 、ネットワーク接続: アクセプターとコネクター を参照してください。各テーブルは、名前別にパラメーターを一覧表示し、アクセプターまたはコネクターと使用できるか、またはその両方とともに使用するかをメモします。たとえば、アクセプターでしか使用するなど、一部のパラメーターを使用できます。
すべての Netty パラメーターは org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants
クラスで定義されます。カスタマーポータル では、ソースコードをダウンロードできます。
表A.1 Netty TCP パラメーター
パラメーター | 用途 | 説明 |
---|---|---|
batchDelay | 両方 |
パケットをアクセプターまたはコネクターに書き込む前に、ブローカーは |
connectionsAllowed | アクセプター | アクセプターが許可する接続の数を制限します。この制限に達すると、DEBUG レベルのメッセージがログに出力され、接続は拒否されました。使用中のクライアントのタイプによって、接続が拒否されたときに何が起こるかが決まります。 |
directDeliver | 両方 |
メッセージがサーバーに到達し、待機しているコンシューマーに配信されると、デフォルトでは、メッセージが到達した同じスレッドで配信が実行されます。これにより、メッセージが比較的小さく、コンシューマーの数が少ない環境では適切な待ち時間が発生しますが、特にマルチコアマシンではスループットとスケーラビリティー全体のコストが発生します。レイテンシーを最小限に抑え、スループットが低い場合は、 |
handshake-timeout | アクセプター | 承認されていないクライアントが多数の接続を開かないようにし、開いた状態にします。各接続にはファイルハンドルが必要なため、他のクライアントでは利用できないリソースを消費します。 このタイムアウトにより、接続が認証されずにリソースを消費できる時間を制限します。接続が認証されると、リソース制限設定を使用してリソース消費を制限できます。
デフォルト値は タイムアウト値を編集したら、ブローカーを再起動する必要があります。 |
localAddress | コネクター | リモートアドレスへの接続時にクライアントが使用するローカルアドレスを指定します。通常、これはアプリケーションサーバーで使用され、Embeddent 接続に使用されるアドレスを制御するために Embedded を実行する場合に使用されます。local-address が設定されていない場合、コネクターは利用可能なローカルアドレスを使用します。 |
localPort | コネクター | リモートアドレスへの接続時にクライアントが使用するローカルポートを指定します。通常、これはアプリケーションサーバーで使用され、Embeddent 接続に使用されるポートを制御するために Embedded を実行する場合に使用されます。デフォルトに (0) が使用される場合、コネクターによりシステムで一時ポートを取得することが許可されます。有効なポートは 0 から 65535 です。 |
nioRemotingThreads | 両方 |
NIO を使用するように設定されている場合には、 ブローカーはデフォルトで受信パケットを処理するために |
tcpNoDelay | 両方 |
|
tcpReceiveBufferSize | 両方 |
TCP 受信バッファーのサイズ ( バイト単位 ) を決定します。デフォルト値は |
tcpSendBufferSize | 両方 |
TCP 送信バッファーのサイズ ( バイト単位 ) を決定します。デフォルト値は TCP バッファーサイズは、ネットワークの帯域幅およびレイテンシーに従って調整する必要があります。 つまり、TCP の送信/受信バッファーサイズは以下のように計算する必要があります。 buffer_size = bandwidth * RTT
帯域幅とは秒単位で、ネットワークラウンドトリップタイム (RTT) は秒単位になります。RTT は、 高速ネットワークでは、デフォルトからバッファーサイズを増やす必要がある場合があります。 |
表A.2 Netty HTTP パラメーター
パラメーター | 用途 | 説明 |
---|---|---|
httpClientIdleTime | アクセプター | 接続を維持するために空の HTTP 要求を送信する前にクライアントがアイドル状態でいられる期間。 |
httpClientIdleScanPeriod | アクセプター | アイドル状態のクライアントに対してスキャンを行う頻度 (ミリ秒単位)。 |
httpEnabled | アクセプター | 不要になりました。単一ポートがサポートされる場合、ブローカーは HTTP が使用されているかどうかを自動的に検出し、それ自体を設定するようになりました。 |
httpRequiresSessionId | 両方 |
|
httpResponseTime | アクセプター | 接続を維持するために空の HTTP 応答を送信する前にサーバーが待機する時間。 |
httpServerScanPeriod | アクセプター | 応答が必要なクライアントに対してスキャンを行う頻度 (ミリ秒単位)。 |
表A.3 Netty TLS/SSL パラメーター
パラメーター | 用途 | 説明 |
---|---|---|
enabledCipherSuites | 両方 | SSL 通信に使用される暗号スイートのコンマ区切りリスト。デフォルト値は空で、JVM のデフォルトが使用されます。 |
enabledProtocols | 両方 | SSL 通信に使用されるプロトコルのコンマ区切りリスト。デフォルト値は空で、JVM のデフォルトが使用されます。 |
forceSSLParameters | コネクター |
このコネクターの SSL コンテキストを設定するために、JVM システムプロパティー (
有効な値は |
keyStorePassword | 両方 | アクセプターで使用されると、サーバー側のキーストアのパスワードになります。
コネクターで使用されると、クライアント側のキーストアのパスワードになります。双方向 SSL(つまり相互認証) を使用している場合は、これはコネクターにのみ関係します。この値はサーバー上で設定可能ですが、ダウンロードしてクライアントで使用します。クライアントでサーバーの設定と異なるパスワードを使用する必要がある場合は、カスタムの |
keyStorePath | 両方 | アクセプターで使用される場合は、サーバーの証明書を保持するサーバーの SSL キーストアへのパスになります ( 自己署名または認証局によって署名されているかどうか )。
コネクターで使用される場合、これはクライアント証明書を保持するクライアント側の SSL キーストアへのパスとなります。双方向 SSL(つまり相互認証) を使用している場合は、これはコネクターにのみ関係します。この値はサーバー上で設定されますが、ダウンロードしてクライアントで使用します。クライアントでサーバーの設定と異なるパスを使用する必要がある場合は、カスタムの |
needClientAuth | アクセプター |
このプロパティーは、このアクセプターに接続するクライアントに双方向 SSL が必要であることを伝えます。有効な値は |
sslEnabled | 両方 |
SSL を有効にするには |
trustManagerFactoryPlugin | 両方 |
これは、
ブローカーの Java クラスパスに、指定したプラグインを配置する必要があります。 |
trustStorePassword | 両方 | アクセプターで使用されると、サーバー側のトラストストアのパスワードになります。双方向 SSL(つまり相互認証) を使用している場合、アクセプターにのみ関係します。
コネクターで使用されると、クライアント側のトラストストアのパスワードになります。この値はサーバー上で設定可能ですが、ダウンロードしてクライアントで使用します。クライアントがサーバーで設定されているものとは異なるパスワードを使用する必要がある場合は、通常の |
sniHost | 両方 |
アクセプターで使用される場合、
受信接続に
コネクターで使用されると、SSL 接続の |
sslProvider | 両方 |
このオプションは、OpenSSL でサポートされ、JDK プロバイダーでサポートされていない、特別な ciphersuite-elliptic 曲線の組み合わせを使用する場合に便利です。 |
trustStorePath | 両方 | アクセプターで使用される場合、これはサーバーが信頼するすべてのクライアントのキーを保持するサーバー側の SSL キーストアへのパスとなります。双方向 SSL(つまり相互認証) を使用している場合、アクセプターにのみ関係します。
コネクターで使用される場合は、クライアント側の SSL/TLS キーストアへのパスとなります。これは、クライアントが信頼するすべてのサーバーの公開鍵を保持します。この値はサーバー上で設定可能ですが、ダウンロードしてクライアントで使用します。クライアントでサーバーの設定と異なるパスを使用する必要がある場合は、カスタムの |
useDefaultSslContext | コネクター |
コネクターが (
このパラメーターが |
verifyHost | 両方 | アクセプターで使用されると、接続しているクライアントの SSL 証明書の CN がホスト名と比較され、それらが一致することを確認します。これは双方向 SSL でのみ便利です。 コネクターで使用されると、サーバーの SSL 証明書の CN がホスト名と比較され、それらが一致することを確認します。これは一方向および双方向 SSL の両方に役立ちます。
有効な値は |
wantClientAuth | アクセプター |
このアクセプターに接続するクライアントに対して、双方向 SSL が要求されているが、必須ではないことを伝えます。有効な値は
|