在Masstransit中使用rabbitmqtransport时,如何为生产者和消费者创建两个rabbitmq连接。分离发布者和消费者的连接,以实现高吞吐量。当发布者发送的消息太多而服务器无法处理时,RabbitMQ可以对TCP连接施加反压力。如果在同一个TCP连接上使用,服务器可能不会接收到来自客户端的消息确认,从而影响使用性能。如果消耗速度较低,服务器将不堪重负。
如果您有高消息率场景,实际触发RabbitMQ通过TCP应用背压,我建议从一个单独的总线实例(可能也在两个单独的服务中(生成初始消息(意味着在消费者之外生成的消息,如bus.Publish
或通过发送端点生成的消息(。
在性能测试中,我还没有发现任何与单个连接上的重负载相关的问题,即使是在较小的RabbitMQ实例上也是如此。