.net - 在 Masstransit 中使用 rabbitmq 传输时如何为生产者和消费者创建两个 rabbitmq 连接
问题描述
在 Masstransit 中使用rabbitmq 传输时,如何为生产者和消费者创建两个rabbitmq 连接。分离发布者和消费者的连接以实现高吞吐量。当发布者发送太多消息以供服务器处理时,RabbitMQ 可以对 TCP 连接施加背压。如果在同一个 TCP 连接上消费,服务器可能不会收到来自客户端的消息确认,从而影响消费性能。使用较低的消耗速度,服务器将不堪重负。
解决方案
如果您有高消息率场景实际上触发 RabbitMQ 通过 TCP 应用背压,我建议从单独的总线实例(也可能在两个单独的服务中)生成初始消息(意味着在消费者之外产生的消息,例如作为bus.Publish
或通过发送端点。
在我的性能测试中,我还没有看到任何与单个连接上的重负载相关的问题——即使是在较小的 RabbitMQ 实例上也是如此。
推荐阅读
- python - Python中系数的置信区间?
- performance - 火花中的 union() 或 full_outer_join 哪个性能更好?
- android - 安卓信任管理器漏洞
- python - 将字典值从字符串转换为具有浮点类型的单个元素的列表
- sql - 计算一年内每周活跃的不同客户
- python - OpenCV在相机仍在运行时拍摄单个相机帧
- http - 防火墙/代理后面的 Hyperledger Fabric
- perl - 在 Mac OSX 上使用 libevent 安装 Event::Lib 时出现问题
- python - Visual Basic NET 无法连接到 TLS 1.2 Web 服务器
- java - Java 优先队列问题