tencent cloud

消息队列 RocketMQ 版

动态与公告
新功能发布记录
公告
产品简介
产品概述
什么是消息队列 RocketMQ 版
产品优势
应用场景
产品系列
开源对比
高可用
使用限制
开服地域
基本概念
产品计费
计费概述
价格说明
计费示例
切换集群计费模式(5.x)
续费说明
查看消费明细
退费说明
欠费说明
快速入门
快速入门概述
准备工作
步骤1:创建 RocketMQ 资源
步骤2:使用 SDK 收发消息(推荐)
步骤2:运行 RocketMQ 客户端(可选)
步骤3:查询消息
步骤4:销毁资源
用户指南
使用流程指引
配置账号权限
新建集群
命名空间管理
配置 Topic
配置 Group
连接集群
管理消息
管理集群
查看监控和配置告警
跨集群复制消息
实践教程
RocketMQ 常见概念命名规范
RocketMQ 客户端实践
RocketMQ 性能压测和容量评估
使用社区版 HTTP SDK 接入
客户端风险说明和更新指南
关于 RocketMQ 4.x 集群角色(Role)相关云 API 迁移指引
迁移指南
有感迁移
无感迁移
开发指南
消息类型
消息过滤
消息重试
POP 消费模式(5.x)
集群消费与广播消费
订阅关系一致性
限流
API 参考(5.x)
History
API Category
Making API Requests
Topic APIs
Consumer Group APIs
Message APIs
Role Authentication APIs
Hitless Migration APIs
Cloud Migration APIs
Cluster APIs
Data Types
Error Codes
API 参考(4.x)
SDK 参考
SDK 概述
5.x SDK
4.x SDK
安全与合规
权限管理
云 API 审计
删除保护
常见问题
4.x 实例常见问题
服务协议
服务等级协议
联系我们

消息拉取频率介绍

PDF
聚焦模式
字号
最后更新时间: 2026-01-23 17:07:05
RocketMQ 有两种常用的消费模式,Pull 和 Push,而 Push 模式的实现是基于 Pull 模式,只不过对 Pull 模式做了个包装,所以 RocketMQ Push 模式并不是真正意义上的推模式,还是拉模式。
可以认为 RocketMQ SDK 会不断的进行消息拉取任务。对于每一次拉取的结果:
当从 broker 拉取到消息后,如果消息被过滤掉(例如 tag 过滤),则继续将拉取请求放入阻塞队列中继续循环执行消息拉取任务,否则将消息放入消费者消费线程去执行,而将拉取请求放入阻塞队列中。
如果从 broker 端没有可拉取的新消息或者没有匹配到消息,则将 pullRequest 放入阻塞队列中继续循环执行消息拉取任务。
从这里可以看到,如果用户没有消息生产,只要有消费者在线,那么都会周期性的向服务端请求,这种请求也能保证消息消费的及时性。如果用户想减少拉取次数,

如何处理

对于 Pull 模式的消费者,由于用户完全自主控制拉取频率,所以用户只需要自己在拉取一次之后,进行对应的等待,或者使用对应的限流组件来控制。
而对于 Push 模式的消费者,那么可以设置 PullInterval 拉长拉取间隔。
 // 设置拉取间隔 60秒
pushConsumer.setPullInterval(60 * 1000);
注意:
但是相应的需要注意,消息消费的延迟可能上升,修改需要谨慎。
如果用户生产消息量很少,基本上会命中长轮训的时间,目前 SDK 固定了长轮训是15秒,也就是说,对于一个 queue,一个 broker,每分钟最少会发起4次拉取。如果有10个 Topic,每个 Topic 3个队列,服务端有2个 broker,那么这个拉取数量为10*3*2*4=240,也就是每秒4个拉取。
运行过程中,会随着用户生产消费,可能产生重试 Topic,这时候,因为要拉取重试队列,所以消费拉取频率还会上升。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈