Thousands of connections add up to a heavy burden on a RabbitMQ server, causing it to run out of memory and crash. A large number of connections and channels can also negatively impact the RabbitMQ management interface due to the large number of performance metrics being processed. To avoid this, configure each application to create an extremely small number of connections – 1, if possible. Instead of using multiple connections, establish a channel for each thread. Each connection should be long-lived and the following best practices should be considered depending on the application structure.
Remember that even if new hardware offers hundreds of threads, only the number of channels set can be established and this number should be kept from growing too large. As some clients don't make channels thread-safe, it is best not to share channels between threads. Doing so may create a race condition, which could completely crash the application...