2014-07-20 4 views
0

설명서에 따르면 RabbitMQ에는 각 RabbitMQ Connection (채널과 반대)에 대한 스레드 풀이 있습니다.RabbitMQ 프로듀서 Threadpool

http://rabbitmq.1065348.n5.nabble.com/Limitations-with-RabbitMQ-Java-Client-tp30727p30768.html

이 합리적인 기본을합니다. 연결 당 대기열을 가질 수 있으며 각 대기열에는 최대 5 개의 작업자 스레드가 요청을 처리합니다. 그러나 프로듀서의 스레드 수에 관해서는 아무 것도 언급되어 있지 않습니다. 각 연결의 스레드 풀이 최대 5 개 스레드임을 나타내는 포괄적 인 의미는 RabbitMQ 브로커와의 연결에서 새 채널을 설정하는 각 Producer가 동일한 유형의 스레드 풀에도 바인딩된다는 것을 암시 적으로 의미합니다.

그런 경우 sendMessage을 호출 할 때마다 threadpool을 사용합니까?

답변

0

연결 대신 스레드 당 하나의 채널이 있어야합니다. 연결은 하나만 있어야합니다.

"게시자 - 스레드"에는 제한이 없지만 채널당 한 메시지 씩 보낼 수 있습니다. 당신을 고려하여

내가 연결 채널을하지 의미

channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); 
+0

죄송 유사한 코드를 사용하고 있습니다. –

+0

질문을 수정하십시오. – Zarathustra

+0

확인해 주셔서 감사합니다. 나는 스레드 당 하나의 채널과 큐 당 하나의 연결이 있다는 것을 이해하며, 나는 그 질문에 그것을 확립했다. 문제는,'sendMessage'가 threadpool에있는 다른 쓰레드를 사용하여 rabbitmq에게 메시지를 보낸다는 것입니다 –