239.10. Netty 가입자 및 작업자 스레드 풀 사용
Camel 2.12에서 사용 가능
Netty에는 두 가지 종류의 스레드 풀이 있습니다. 즉, 바쁘게와 작업자입니다. 기본적으로 각 Netty 소비자와 생산자에는 개인 스레드 풀이 있습니다. 여러 소비자 또는 생산자 간에 이러한 스레드 풀을 재사용하려면 스레드 풀을 생성하여 레지스트리에 추가해야 합니다.
예를 들어 Spring XML을 사용하면 다음과 같이 2개의 작업자 스레드가 있는 NettyWorkerPoolBuilder 를 사용하여 공유 작업자 스레드 풀을 생성할 수 있습니다.
<!-- use the worker pool builder to help create the shared thread pool -->
<bean id="poolBuilder" class="org.apache.camel.component.netty.NettyWorkerPoolBuilder">
<property name="workerCount" value="2"/>
</bean>
<!-- the shared worker thread pool -->
<bean id="sharedPool" class="org.jboss.netty.channel.socket.nio.WorkerPool"
factory-bean="poolBuilder" factory-method="build" destroy-method="shutdown">
</bean>
비만족 스레드 풀에는 Netty 사용자를 위한 org.apache.camel.component.nettyServerBossPoolBuilder 빌더와 Netty 생산자의 경우 org.apache.camel.component.nettyClientBosPoolBuilder 빌더 가 있습니다.
그런 다음 Camel 경로에서 다음과 같이 URI 에서 workerPool 옵션을 구성하여 이 작업자 풀을 참조할 수 있습니다.
<route>
<from uri="netty:tcp://0.0.0.0:5021?textline=true&sync=true&workerPool=#sharedPool&orderedThreadPoolExecutor=false"/>
<to uri="log:result"/>
...
</route>
그리고 다른 경로가 있으면 공유 작업자 풀을 참조할 수 있습니다.
<route>
<from uri="netty:tcp://0.0.0.0:5022?textline=true&sync=true&workerPool=#sharedPool&orderedThreadPoolExecutor=false"/>
<to uri="log:result"/>
...
</route>
- 그리고 계속 됩니다.