使用用于RabbitMQ的Java客户端,我创建了一个连接池机制,该机制已建立并可用的一组rabbitmq连接.一旦客户端租用连接,客户端就会创建一个通道.如果我必须发送执行任务并发送100条消息,则对于每条消息,客户端将租用连接并使用API创建通道,例如:
rqConnection = MyPoolManager.leaseConnection();
rqChannel = rqConnection.createChannel();
Run Code Online (Sandbox Code Playgroud)
我可以在我的池中预先建立一个通道作为每个连接一个通道,还是可以在发送消息之前始终创建一个通道?我担心的是,通过渠道创建渠道可能会消耗资源.我可以让频道与包含连接和频道的类共存,因此它总是在其使用需求之前预先创建.如果信道创建不会造成资源消耗或泄漏影响,那么我可以继续我目前的方法.
gex*_*tra 10
基于其他群体的其他研究和观察,以下是有关渠道的一些事实:
因此,最好的方法似乎是支持在多个通道上建立一个连接和池,其中每个通道将由不同的线程提供(以防止并发问题).