根据文档,RabbitMQ为每个RabbitMQ Connection
都有一个线程池(而不是通道)。
http://rabbitmq.1065348.n5.nabble.com/Limitations-with-RabbitMQ-Java-Client-tp30727p30768.html
这是一个合理的默认值。每个连接可以有一个队列,每个队列最多有5个工作线程接收请求。但是,关于Producer的线程数没有任何说明。每个连接具有最多5个线程的线程池的一揽子声明隐含地表示每个Producer在与RabbitMQ代理的连接上建立新通道,该通道也将绑定到相同类型的线程池。
如果是这样的话,每次调用sendMessage
会不会使用线程池?
答案 0 :(得分:0)
每个线程应该有一个Channel而不是Connection。你应该只有一个连接。
“发布商线程”没有限制,但每个频道一次可以发送一条消息。
考虑使用类似的代码
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());