2017-04-02 1 views
1

소비자의 최대 수를 구성 @RabbitListener : 유물 봄 토끼 1.7.1.RELEASE 가 궁금 각 대기열에 대해 구성 할 수있는 방법이 있는지 소비자의 수? 설명서를 파고 들었지만 아직 아무것도 발견하지 못했습니다. 관련 컨테이너에 각 큐의 소비자 수를 구성하는 방법이 있습니까? 미리 감사드립니다. 봄 토끼 AMQP는 분, 나는에서 스프링 AMQP 토끼 @RabbitListener 주석 을 사용하고

+0

당신은 소비자 스레드의 수를 의미합니까? – notionquest

답변

2

container factory bean as shown in the documentation을 통해 동시성을 구성하십시오.

@Bean 
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() { 
    SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); 
    factory.setConnectionFactory(connectionFactory()); 
    factory.setConcurrentConsumers(3); 
    factory.setMaxConcurrentConsumers(10); 
    return factory; 
} 

팩토리 빈을 만드는 스프링 부트를 사용하는 경우 속성을 사용하여 구성 할 수 있습니다.

고정 된 수의 소비자가 필요한 경우 max을 생략하면됩니다.

각 수신기마다 다른 설정을 원할 경우 각 설정 집합마다 다른 팩토리가 필요합니다. 그런 다음 containerFactory 속성에 @RabbitListener에 대한 특정 컨테이너 팩터 리를 참조합니다.

+0

다음과 같이 추가해야합니다. @RabbitListener (queues = STATUS_QUEUE_NAME, containerFactory = STATUS_LISTENER_CONTAINER_FACTORY) 나는 여러 곳에서 사용할 수 있습니다. @Bean (STATUS_LISTENER_CONTAINER_FACTORY) 공개 SimpleRabbitListenerContainerFactory statusListenerContainerFactory() {...} I는 다음 내용을 추가하여 최소 및 최대 한계를 설정 @Gary –

+0

: factory.setConcurrentConsumers (3); factory.setMaxConcurrentConsumers (10); 한 번에 3 개의 요청 만 병렬로 실행됩니다. 내 이해 최대 10 개의 요청을 동시에 실행해야합니다. 이 두 가지 매개 변수를 설정합니다. 어디로 잘못 가고 있는지 알려주세요. – Manisha

+0

기존 질문에 대한 의견보다는 새로운 질문을해야합니다. 하지만, 아니요, 큐에 메시지가 충분하면 ** 3에서 시작하고 천천히 10 **으로 증가합니다 ** 알고리즘은 [여기에 설명되어 있습니다] (https://docs.spring.io/spring- amqp // reference/html/_reference.html # listener-concurrency). 기본 설정을 사용하면 메시지가 충분하면 새 소비자가 10 초마다 추가됩니다. –