2016-09-11 3 views
0

RabbitMQ Java API를 사용 중입니다. *.apple 라우팅 키에 등록 된 작업자가 있습니다. 나는 그때 한 명 이상의 작업자가 라우팅 키를 검증 할 필요가 없다는 것을 확인하고 싶다. 3 작업 대기열에 주어진 예를 들어RabbitMQ : 특정 라우팅 키에 대한 작업자 제한

:

  • orange.apple
  • green.apple
  • orange.apple

두 노동자는 orange.applegreen.apple 즉시 시작됩니다 orange.apple에 대한 승인 이후에만 새로운 orange.apple 작업자가 시작됩니다.

답변

0

라우팅 키를 기반으로 메시지를 배달 할 대기열 이외의 다른 것을 제한 할 수 없습니다.

상황에 따라 작업자를 대기열로 제한하려면 작업자가 대기열에 연결하거나 대기열에서 소비 할 때 소비자를 "배타적"으로 설정하여이 작업을 수행 할 수 있습니다.

아마도 소비자 프리 페치 제한 인 1과 false 인 "auto ack"를 사용하는 것이 좋습니다.

이렇게하면 대기열에 단일 소비자가 있으며 한 번에 하나의 메시지 만 처리하므로 다음 메시지를 받기 전에 작업을 완료하면 메시지를 확인해야합니다 .

+0

그래서 작업자를 대기열로 제한하고 오렌지색과 녹색을 동시에 실행하려면 어떻게해야합니까? –

+0

메시지 유형당 하나의 대기열. "orange.apple"대기열과 "green.apple"대기열이 있습니다. 각각은 자신의 소비자 구성을 가지고 있습니다. 위의 주소는 –

+0

입니다. 문제는 "* .apple"이라는 와일드 카드가 필요하고 정확한 라우팅 키가있을 때만 대기열을 제한하고 싶다는 것입니다. –

관련 문제