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.nettyServerBossPoolBuilder 빌더와 NettyClientBossPoolBuilder에 대한 org.apache.camel.component.nettyClientBossPoolBuilder 가 있습니다.

그런 다음 Camel 경로에서 다음과 같이 URI 에서 workerPool 옵션을 구성하여 이 작업자 풀을 참조할 수 있습니다.

    <route>
      <from uri="netty:tcp://0.0.0.0:5021?textline=true&amp;sync=true&amp;workerPool=#sharedPool&amp;orderedThreadPoolExecutor=false"/>
      <to uri="log:result"/>
      ...
    </route>

그리고 다른 경로가 있는 경우 공유 작업자 풀을 참조할 수 있습니다.

    <route>
      <from uri="netty:tcp://0.0.0.0:5022?textline=true&amp;sync=true&amp;workerPool=#sharedPool&amp;orderedThreadPoolExecutor=false"/>
      <to uri="log:result"/>
      ...
    </route>
  1. 그런 다음 계속 진행하십시오.