更新时间:2025-07-29 GMT+08:00
创建RocketMQ Topic
Topic,即消息主题,消息发送与接收的基本单元。购买RocketMQ实例成功后,需要手动创建Topic,通过Topic完成消息的发布和订阅。消息生产者将消息发送到Topic中,而消息消费者则通过订阅该Topic来消费消息。
约束与限制
- Topic不能跨实例使用,例如在实例A中创建的Topic A不能在实例B中使用。
- 在5.x版本中,客户端使用gRPC协议收发消息时,Topic类型和消息类型(具体类型介绍请参见表2)必须一致不能混用。例如,您需要创建一个Topic用于收发普通消息,则该Topic的消息类型必须为普通消息类型,不能选择顺序消息、事务消息等,否则会导致运维事件(如节点更换,实例迁移时定时消息丢失)。
前提条件
已购买RocketMQ实例。
创建Topic
- 登录管理控制台。
- 在管理控制台左上角单击
,选择区域。
不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
- 在管理控制台左上角单击
,选择“应用中间件 > 分布式消息服务RocketMQ版”,进入分布式消息服务RocketMQ页面。
- 单击RocketMQ实例的名称,进入实例详情页面。
- 在左侧导航栏,单击“实例管理 > Topic管理”,进入“Topic管理”页面。
- 单击“创建Topic”,弹出“创建Topic”页面。
- 参考表1或表2,填写Topic名称和配置信息。
图1 创建Topic(RocketMQ实例4.8.0版本)图2 创建Topic(RocketMQ实例5.x版本)
表1 Topic参数说明(RocketMQ实例4.8.0版本) 参数
说明
Topic名称
您可以自定义Topic名称,用于区分不同的Topic。
Topic名称命名规则如下:- 长度为3~64个字符。
- 只能由英文字母、数字、百分号、竖线、中划线、下划线组成。
如果Topic名称中包含“%”或“|”,在云监控中会将“%”或“|”转换为“_”显示,例如Topic名称为“test%01”,在云监控中Topic名称显示为“test_01”。
- 不能以“rmq_sys_”开头。
- 不能和以下字符串相同:
- TBW102
- SCHEDULE_TOPIC_XXXX
- BenchmarkTest
- RMQ_SYS_TRANS_HALF_TOPIC
- RMQ_SYS_TRACE_TOPIC
- RMQ_SYS_TRANS_OP_HALF_TOPIC
- TRANS_CHECK_MAX_TIME_TOPIC
- SELF_TEST_TOPIC
- OFFSET_MOVED_EVENT
- Topic名称不能设置为相同,否则会创建失败。
创建Topic后不能修改名称。
权限
Topic的权限。
取值范围:
- 发布+订阅:表示生产者可以往Topic发送消息,消费者也可以消费Topic中的消息。
- 发布:表示生产者可以往Topic发送消息,但消费者不能消费Topic中的消息。
- 订阅:表示生产者不可以往Topic发送消息,但消费者可以消费Topic中的消息。
默认值:发布+订阅
关联代理
选择在某个代理上创建Topic,并设置Topic的队列个数。
如果实例部署在多个代理上,单击“添加关联代理”,可以在其他代理上创建Topic,并设置Topic的队列个数。
如果需要新增关联代理,则需要先扩容代理个数,具体操作请参见变更RocketMQ实例规格。扩容代理个数后,用户可以创建的最大Topic数也会增加。例如扩容前实例的代理数为1,每个代理的最大Topic数为4000;扩容后实例的代理数为2,则2个代理的最大Topic数为8000。
描述
Topic的描述信息。
取值长度为0~200个字符。
- 配置完成后,单击“确定”,完成Topic的创建。
相关文档
- Topic的创建也可以通过调用API完成,具体请参见创建主题或批量删除主题。
- 使用客户端连接RocketMQ生产和消费Topic中的消息时,请参见使用客户端连接RocketMQ(关闭SSL)、使用客户端连接RocketMQ(开启SSL)或使用控制台连接RocketMQ。
- 当您需要创建多个用户并为其赋予不同的Topic权限,以达到用户之间的权限隔离时,可以开启ACL访问控制并配置用户,具体请参见开启RocketMQ ACL访问和配置RocketMQ ACL用户。