首页 > 解决方案 > 在 Masstransit 中使用 rabbitmq 传输时如何为生产者和消费者创建两个 rabbitmq 连接

问题描述

在 Masstransit 中使用rabbitmq 传输时,如何为生产者和消费者创建两个rabbitmq 连接。分离发布者和消费者的连接以实现高吞吐量。当发布者发送太多消息以供服务器处理时,RabbitMQ 可以对 TCP 连接施加背压。如果在同一个 TCP 连接上消费,服务器可能不会收到来自客户端的消息确认,从而影响消费性能。使用较低的消耗速度,服务器将不堪重负。

标签: .netmasstransit

解决方案


如果您有高消息率场景实际上触发 RabbitMQ 通过 TCP 应用背压,我建议从单独的总线实例(也可能在两个单独的服务中)生成初始消息(意味着在消费者之外产生的消息,例如作为bus.Publish或通过发送端点。

在我的性能测试中,我还没有看到任何与单个连接上的重负载相关的问题——即使是在较小的 RabbitMQ 实例上也是如此。


推荐阅读