Rabbitmq 用于极高吞吐量的连接/通道

Rabbitmq 用于极高吞吐量的连接/通道,rabbitmq,amqp,Rabbitmq,Amqp,我有一个应用程序,它可以聚合来自数十个其他应用程序的数据,并通过rabbit传输到中央服务器,因此吞吐量要求将是极端的 如果我正确理解AMQPAPI,那么连接是一个物理TCP/IP套接字,而通道是一个轻量级的“虚拟”连接。我发现的典型建议是,我应该打开一个连接,每个制作人一个频道。我看到有人建议,在极少数情况下,高吞吐量可能会要求使用附加通道打开附加连接 每个连接的最佳通道数是否有一个通用指标来最大化吞吐量?您必须使用典型的工作负载和单个/多个连接和通道运行基准测试来回答自己的问题 Rabbit

我有一个应用程序,它可以聚合来自数十个其他应用程序的数据,并通过rabbit传输到中央服务器,因此吞吐量要求将是极端的

如果我正确理解AMQPAPI,那么连接是一个物理TCP/IP套接字,而通道是一个轻量级的“虚拟”连接。我发现的典型建议是,我应该打开一个连接,每个制作人一个频道。我看到有人建议,在极少数情况下,高吞吐量可能会要求使用附加通道打开附加连接


每个连接的最佳通道数是否有一个通用指标来最大化吞吐量?

您必须使用典型的工作负载和单个/多个连接和通道运行基准测试来回答自己的问题

RabbitMQ团队提供了您也可以使用的工具

实现最高性能意味着正确编写应用程序以使用多个连接和每个连接的通道。像SpringAMQP这样的库可能会使这更容易(如果您使用的是JVM语言)



注意:RabbitMQ团队监控
RabbitMQ用户
,并且只在某些时候回答有关StackOverflow的问题。

我使用的是golang。我从其他地方继承了一些代码,它为每个请求打开了一个新的通道。如果我正确阅读了文档,那就不是正确的方法。如果我理解正确,生产者“线程”(goroutine)应该能够在整个会话中使用通道。