知识卡片

推模式与拉模式的性能鸿沟

专业/工作 · 591

内容

RabbitMQ消费消息分推(Basic.Consume)和拉(Basic.Get)两种模式:推模式下Broker持续把消息推送给已订阅的消费者,受Qos限制流控;拉模式由消费者每次主动请求单条消息。二者看似只是调用方式不同,但把Basic.Get放进循环里模拟持续消费会严重拖累性能——每次拉取都是一次独立的请求-响应往返,缺少推模式下服务端主动批量投递的效率。发散:这提醒我们”能实现同样效果的两种API”往往在底层开销上并不对等,选择哪种不能只看功能等价,还要看谁在真正承担驱动成本。

参考来源

《RabbitMQ实战指南》第3章《客户端开发向导》