title: In RabbitMQ should I create a connection pool on Connections, Channels, or both?
body: <p>Using a java client for RabbitMQ, I have created a connection pooling mechanism that has a set of rabbitmq connections established and available.  Once a client leases a connection the client creates a channel. If I have to send perform tasks and send 100 messages, for each of those messages the client will lease a connection and create a channel with the API such as:</p>
  
  <pre><code>rqConnection = MyPoolManager.leaseConnection();
  rqChannel = rqConnection.createChannel();
  </code></pre>
  
  <p>Can I have a channel pre-established within my pool as one channel per connection, or a channel can always be created prior to send a message ? <strong>My concern is that creating channels over channels might consume resources.</strong> I can have the channel co-exist with a Class that contains both the connection and the channel so it is always pre-created ahead of its usage need. If the channel creation poses no resource consumption or leakage implications, then I can proceed with my current approach. </p>