MST

星途 面试题库

面试题:消息队列中RocketMQ拉取与推送模式在性能方面的对比

请阐述在高并发场景下,RocketMQ的消息拉取模式和推送模式在性能上各有哪些特点及优势?从网络开销、资源占用等方面进行分析。
22.4万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

拉取模式

  1. 网络开销
    • 特点:由消费者主动发起拉取请求获取消息,若拉取频率设置不当,可能产生过多无效请求。当消息到达不频繁,拉取间隔短,会造成网络带宽浪费;若拉取间隔长,消息处理可能存在延迟。
    • 优势:消费者可自主控制拉取频率和数量,在消息量较少场景下,能避免不必要网络开销,按需拉取。例如在监控系统中,异常消息不常出现,消费者可按需拉取,减少网络负担。
  2. 资源占用
    • 特点:消费者端资源占用相对灵活,因主动拉取,若拉取逻辑复杂,或拉取频率高,会占用较多 CPU 和内存资源。
    • 优势:可以根据自身处理能力控制拉取量,避免因大量消息同时到达导致资源耗尽。如在处理能力有限的边缘计算设备上,可按自身性能拉取合适数量消息处理。

推送模式

  1. 网络开销
    • 特点:消息到达 Broker 后,Broker 主动推送给消费者,实时性好,但可能因消息持续推送,导致网络带宽持续占用,尤其在高并发大量消息场景下,网络压力大。
    • 优势:能保证消息及时到达消费者,对于对消息实时性要求极高场景,如金融交易系统的实时通知,可快速将消息推送给相关系统处理,减少消息处理延迟。
  2. 资源占用
    • 特点:Broker 端需维护与众多消费者连接,并主动推送消息,对 Broker 资源消耗较大,包括 CPU、内存和网络连接资源等。
    • 优势:消费者端无需频繁发起拉取请求,资源占用相对稳定,只需专注处理推送过来的消息,适合资源有限的轻量级客户端,如移动端应用接收推送消息。