Como posso agrupar canais no rabbitmq?

Eu tenho tentado compartilhar conexão entre threads e ter canais abertos apenas na criação de threads, mas depois de pesquisar um pouco mais, eu acho que também quero tentarconnection pooling. Como posso fazer isso no rabbitmq? ou esta é uma idéia geral que posso aplicar em geral? Meu objetivo é gerar X threads e, em seguida, não ter que abrir novos canais (o que exige estabelecimento de round robin entre cliente e servidor).

Como os threads são de sua própria classe, eu não tenho certeza se eu preciso colocar o pool na própria classe que gera os threads ou para onde eles vão? Eu também tenho vários tipos de threads que eu gostaria de compartilhar essas conexões entre (não apenas um único). Isso é possível?

Só para dar uma ideia geral, veja como conexões / canais são estampados no rabbitmq:

ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");
    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();  //I want to share several of these between threads