gpt4 book ai didi

rabbitmq - 在 RabbitMQ 中,我应该在连接、 channel 或两者上创建连接池吗?

转载 作者:行者123 更新时间:2023-12-02 21:54:07 25 4
gpt4 key购买 nike

使用 RabbitMQ 的 Java 客户端,我创建了一个连接池机制,其中建立了一组可用的rabbitmq连接。一旦客户端租用连接,客户端就会创建一个 channel 。如果我必须发送执行任务并发送 100 条消息,对于每条消息,客户端将租用一个连接并使用 API 创建一个 channel ,例如:

rqConnection = MyPoolManager.leaseConnection();
rqChannel = rqConnection.createChannel();

我可以在池中预先建立一个 channel 作为每个连接一个 channel ,还是可以在发送消息之前创建一个 channel ? 我担心在 channel 上创建 channel 可能会消耗资源。我可以让 channel 与包含连接和 channel 的类共存,因此它始终在使用需要之前预先创建。如果 channel 创建不会造成资源消耗或泄漏影响,那么我可以继续使用当前的方法。

最佳答案

根据其他小组的额外研究和观察,以下是有关 channel 的一些事实:

  • 似乎没有文档指定如何计算每个连接的 channel 数比率,也没有说明运行多个连接与每个连接多个 channel 的好处
  • 运行大量连接似乎比运行大量 channel 更消耗资源。此外,连接仅限于一定数量的文件描述符,而 channel 则不然。
  • 一些单独的测试表明,池连接与池 channel 的性能基准测试相似

因此,最好的方法似乎是支持在多个 channel 上拥有一个连接和池,其中每个 channel 将由不同的线程提供(以防止并发问题)。

关于rabbitmq - 在 RabbitMQ 中,我应该在连接、 channel 或两者上创建连接池吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15680093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com