2017-12-10 18 views
1

에 파견 속도를 설정하기 위해, 소비자 초당 가장 한 행사에서 을 파견 할 수있는 방법이 있습니까? 이것은 이벤트 발송의 홍수를 제어하기위한 것입니다.

이벤트 프로듀서가 내 응용 프로그램 외부에 있습니다. 따라서 나는 소비자 측면에서 통제 된 파견을 처리 할 필요가있다.
jms prefetch 정책을 5로 낮게 구성했습니다. 몇 초 내에 100 개의 메시지를 소비자에게 전달하고 싶지 않습니다. 대신 나는 그것이 꾸준한 흐름이되기를 바랍니다.
방법 50 개 + 소비자와 <strong>ActiveMQ를</strong>에 큐 감안할 때 ActiveMQ를 큐

제어 된 플로우에서 디스패치하도록 큐 소비자를 구성하는 방법은 무엇입니까?

+0

이 조절을 위해 다른 미들웨어를 만드는 것을 고려해야합니다. – bpedroso

답변

1

내가 아는 한, 소비자를 조종 할 방법이 없습니다.

당신이 할 수있는 일은 내장 된 카멜 루트를 사용하여 소비자 대기열로의 흐름을 제한하는 것입니다. 어쩌면이 기능을 사용하는 방법을 찾을 수 있습니까?

  1. conf 디렉토리에 예제/camel.xml을 복사하십시오.
  2. camel.xml 파일의 연결 팩토리를 편집하십시오.
  3. vm://localhost?create=false에 기본 설정에서 변경 브로커 URI는 activemq.xml <include resource="camel.xml"/>

편집이 같은 (1msg/1000ms)으로 깜박임

<route> 
     <description>Throttler 1 msg/s</description> 
     <from uri="activemq:msgs.in"/> 
     <throttle timePeriodMillis="1000" asyncDelayed="true"> 
      <constant>1</constant> 
      <to uri="activemq:msgs.out"/> 
     </throttle> 
    </route> 
에 camel.xml의 경로에 camel.xml 포함