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 实例常见问题
服务协议
服务等级协议
联系我们

Python SDK

PDF
聚焦模式
字号
最后更新时间: 2026-01-23 17:07:05

操作场景

本文以调用 Python SDK 为例介绍通过开源 SDK 实现消息收发的操作过程,帮助您更好地理解消息收发的完整过程。

前提条件

已参考 SDK 概述,获取相关的客户端连接参数

操作步骤

步骤1:准备环境

Rocketmq-client Python 基于 rocketmq-client-cpp 进行包装,因此需要先安装 librocketmq
说明:
目前 Python 客户端仅支持 Linux 和 macOS 操作系统,暂不支持 Windows 系统。
在使用 Python SDK 时要注意安装的 Python 支持的底层芯片架构类型(x86 或是 ARM),例如使用 '64bit','ELF'(即 x86_64 架构) 的 Python 版本,则使用 ARM 芯片的 macOS 系统会出现报错。
1. 安装 librocketmq (版本2.0.0及以上), 安装教程参见 librocketmq 安装
2. 执行如下命令安装 rocketmq-client-python。
pip install rocketmq-client-python


步骤2:生产消息

创建并编译运行生产消息程序。
from rocketmq.client import Producer, Message # 初始化生产者,并设置生产组信息,组名称使用全称,例:rocketmq-xxx|namespace_python%group1 生产消息时,客户端无需重复创建。 producer = Producer(groupName) # 设置服务地址 producer.set_name_server_address(nameserver) # 设置权限(角色名和密钥) producer.set_session_credentials( accessKey, # 角色密钥 secretKey, # 角色名称 '' ) # 启动生产者 producer.start() # 组装消息 # topic 拼接 namespace msg = Message(namespace + '%' + topicName) # 设置keys msg.set_keys(TAGS) # 设置tags msg.set_tags(KEYS) # 消息内容 msg.set_body('This is a new message.') # 发送同步消息 ret = producer.send_sync(msg) print(ret.status, ret.msg_id, ret.offset) # 资源释放 producer.shutdown()
说明:
以下参数需登录 TDMQ RocketMQ 版控制台 获取。
参数
说明
groupName
生产者组名称,在控制台 Group 管理页面复制。
4.x虚拟集群/专享集群:此处需拼接命名空间名称,格式为namespace全称%group名称,例如 MQ_INSTxxx_aaa%GroupTest。
4.x通用集群/5.x集群:此处无需拼接,填写 Group 名称即可。

nameserver
集群接入地址,在控制台集群基本信息页面的接入信息模块获取。

secretKey
角色名称,在控制台的集群权限页面 SecretKey 列复制。
accessKey
角色密钥,在控制台的集群权限页面 AccessKey 列复制。
img


namespace
命名空间的名称,在控制台命名空间页面复制。如果您使用的是4.x通用集群或者5.x集群,此处可填写集群的 ID。

topicName
Topic 的名称,在控制台 Topic 管理页面复制。

TAGS
用来设置消息的 TAG。
KEYS
设置消息业务 key。
当前开源社区的 Python 客户端生产消息存在一定缺陷,导致同一个 Topic 的不同队列间负载不均,详情可参见 缺陷详情

步骤3:消费消息

创建并编译运行消费消息程序。
import time

from rocketmq.client import PushConsumer, ConsumeStatus


# 消息处理回调
def callback(msg):
# 模拟业务
print('Received message. messageId: ', msg.id, ' body: ', msg.body)
# 消费成功回复CONSUME_SUCCESS
return ConsumeStatus.CONSUME_SUCCESS
# 消费成功回复消息状态
# return ConsumeStatus.RECONSUME_LATER


# 初始化消费者,并设置消费者组信息
consumer = PushConsumer(namespace + '%' + groupName)
# 设置服务地址
consumer.set_name_server_address(nameserver)
# 设置权限(角色名和密钥)
consumer.set_session_credentials(
accessKey, # 角色密钥
secretKey, # 角色名称
''
)
# 订阅topic
consumer.subscribe(namespace + '%' + topicName, callback, TAGS)
print(' [Consumer] Waiting for messages.')
# 启动消费者
consumer.start()

while True:
time.sleep(3600)
# 资源释放
consumer.shutdown()
说明:
以下参数需登录 TDMQ RocketMQ 版控制台 获取。
参数
说明
namespace
命名空间的名称,在控制台命名空间页面复制。如果您使用的是4.x通用集群或者5.x集群,此处可填写集群的 ID。
groupName
生产者组名称,在控制台 Group 管理页面复制。

nameserver
集群接入地址,控制台集群基本信息页面的接入信息模块获取。

secretKey
角色名称,在控制台的集群权限页面 SecretKey 列复制。
accessKey
角色密钥,在控制台的集群权限页面 AccessKey 列复制。
img


topicName
Topic 的名称,在控制台 Topic 管理页面复制。


步骤4:查看消息详情

消息发送完成后会得到一个消息 ID (messageID),您可以在控制台的消息查询 > 综合查询页面查询刚刚发送的消息,以及该消息的详情和轨迹等信息。

说明:
上述是对消息的发布和订阅方式的简单介绍。更多操作可参见 DemoRocketMQ-Client-Python示例


帮助和支持

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

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

文档反馈