RabbitMQ Producer Threadpool

时间:2014-07-20 19:57:18

标签: java multithreading rabbitmq threadpoolexecutor

根据文档,RabbitMQ为每个RabbitMQ Connection都有一个线程池(而不是通道)。

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

这是一个合理的默认值。每个连接可以有一个队列,每个队列最多有5个工作线程接收请求。但是,关于Producer的线程数没有任何说明。每个连接具有最多5个线程的线程池的一揽子声明隐含地表示每个Producer在与RabbitMQ代理的连接上建立新通道,该通道也将绑定到相同类型的线程池。

如果是这样的话,每次调用sendMessage会不会使用线程池?

1 个答案:

答案 0 :(得分:0)

每个线程应该有一个Channel而不是Connection。你应该只有一个连接。

“发布商线程”没有限制,但每个频道一次可以发送一条消息。

考虑使用类似的代码

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