242.8. Netty ボスおよびワーカースレッドプールの再利用
Netty には、ボスとワーカーの 2 種類のスレッドプールがあります。デフォルトでは、各 Netty コンシューマーとプロデューサーにはプライベートスレッドプールがあります。複数のコンシューマーまたはプロデューサー間でこれらのスレッドプールを再利用する場合は、スレッドプールを作成してレジストリーに登録する必要があります。
たとえば、Spring XML を使用すると、以下に示すように、2 つのワーカースレッドを持つ NettyWorkerPoolBuilder
を使用して共有ワーカースレッドプールを作成できます。
Boss スレッドプールには、Netty コンシューマー用の org.apache.camel.component.netty4.NettyServerBossPoolBuilder
ビルダーと、Netty プロデューサー用の org.apache.camel.component.netty4.NettyClientBossPoolBuilder
があります。
次に、Camel ルートで、以下に示すように URI で workerPool
オプションを設定することにより、このワーカープールを参照できます。
<route> <from uri="netty4:tcp://localhost:5021?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false"/> <to uri="log:result"/> ... </route>
<route>
<from uri="netty4:tcp://localhost:5021?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false"/>
<to uri="log:result"/>
...
</route>
別のルートがある場合は、共有ワーカープールを参照できます。
<route> <from uri="netty4:tcp://localhost:5022?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false"/> <to uri="log:result"/> ... </route>
<route>
<from uri="netty4:tcp://localhost:5022?textline=true&sync=true&workerPool=#sharedPool&usingExecutorService=false"/>
<to uri="log:result"/>
...
</route>
などがあります。