How can I pool channels in rabbitmq?

前端 未结 2 719
猫巷女王i
猫巷女王i 2021-02-20 05:24

I have been trying to share connection between threads and have channels open only on thread creation but after researching a bit more, I think I want to also try to conne

2条回答
  •  隐瞒了意图╮
    2021-02-20 06:28

    All you need is a pool of Channel objects that your threads can pull from.

    The Apache commons actually already has a generic ObjectPool you can use.

    The javadoc for the interface can be found here: http://commons.apache.org/pool/api-1.6/org/apache/commons/pool/ObjectPool.html

    The javadoc for one of their pre-built implementations can be found here: http://commons.apache.org/pool/api-1.6/org/apache/commons/pool/impl/GenericObjectPool.html

    A tutorial for using it can be found here: http://commons.apache.org/pool/examples.html

    If this is over-complicated for you simple needs, really all you need to do is write a class that manages a set of Channel objects, allowing threads to check them out and return them to the pool, with the appropriate synchronization to prevent two threads from getting ahold of the same Channel

提交回复
热议问题