更新时间: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

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务RocketMQ版”,进入分布式消息服务RocketMQ页面。
  4. 单击RocketMQ实例的名称,进入实例详情页面。
  5. 在左侧导航栏,单击“实例管理 > Topic管理”,进入“Topic管理”页面。
  6. 单击“创建Topic”,弹出“创建Topic”页面。
  7. 参考表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个字符。

    表2 Topic参数说明(RocketMQ实例5.x版本)

    参数

    说明

    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后不能修改名称。

    消息类型

    选择消息的类型。

    取值范围:

    • 普通:没有特殊功能的消息,区别于定时消息、顺序消息和事务消息。
    • 定时:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟到特定时间后才会发送给消费者进行消费。
    • 顺序:消费者按照消息发送的顺序来消费消息。
    • 事务:提供类似X/Open XA的分布事务功能,通过事务消息能达到分布式事务的最终一致。

    默认值:普通

    描述

    Topic的描述信息。

    取值长度为0~200个字符。

  8. 配置完成后,单击“确定”,完成Topic的创建。

相关文档