在rabbitmq中,我们需要在单独的线程中管理连接和通道吗?

nuypyhwy  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(357)

我是消息队列的新手,目前正在评估rabbitmq、activemq和kafka。我看到在rabbitmq中,生产者将创建一个到rabbitmq服务器的连接,并且保持连接的线程将保持活动状态,直到连接关闭。这让我相信,必须有一个单独的线程将信息传递给rmq producer线程,该线程只需将消息发布到队列并保持循环,直到与rmq服务器的连接关闭?这个假设正确吗?如有任何想法/意见,将不胜感激。
谢谢!
p、 学生:这不是Kafka的行为apachekafka:java生产者可重用性]

rn0zuynd

rn0zuynd1#

通常,每个应用程序示例应该有一个rmq连接。应用程序启动后,即可打开该连接。
不过,建立连接还不能让您发布或使用消息。
为此,需要创建一个频道。
一般的最佳实践是应用程序中每个线程一个通道。需要从此线程发布消息吗?为线程创建通道。完成了发布,没有在这个频道上做任何其他rmq工作?关闭频道。
与连接不同的是,频道便宜且易于创建。它们在现有的rmq连接上工作,并且只需要很少的资源来创建。
您可以在一个连接中创建数千个通道(尽管出于性能原因,您可能希望限制该数量)

相关问题