You need to enable JavaScript to run this app.
导航

CreateTopic

最近更新时间2024.01.16 16:39:26

首次发布时间2023.07.12 16:22:34

调用 CreateTopic 接口创建 Topic。

使用说明

在RocketMQ 实例中,Topic 是消息发送与接收的基本单元,消息队列 RocketMQ版通过 Topic 对各类消息进行分类管理。消息的生产者将消息发送到 RocketMQ Topic 中,而消息的消费者则通过订阅该 RocketMQ Topic 来消费消息。

说明

每个实例的 Topic 数量配额与实例规格有关,例如各个规格实例可创建的 Topic 数量请参考产品规格

请求参数

参数

参数类型

是否必选

示例值

说明

InstanceId

String

rocketmq-cnai1f0c29ca****x

实例 ID。

TopicName

String

my_topic

Topic 的名称。
命名规则如下:

  • 长度为 3~100 个字符。
  • 只能包含英文、数字、连字符(-)以及下划线(_)。
  • Topic 名称中不可包含以下保留字符或特殊前缀。
    • 保留字符:RMQ_SYS_TRANS_OP_HALF_TOPIC、BenchmarkTest、TBW102、OFFSET_MOVED_EVENT、SELF_TEST_TOPIC、RMQ_SYS_TRANS_HALF_TOPIC、SCHEDULE_TOPIC_XXXX、RMQ_SYS_TRACE_TOPIC
    • 特殊前缀:rocketmq-broker-、%RETRY%、rmq_sys_、%DLQ%

说明

  • 同一实例下 Topic 名称必须唯一,不同实例间的 Topic 名称可以重复。
  • 对于2023年6月5日及之前创建的 RocketMQ 实例,Topic 名称不可超过 100 个字符。

QueueNumber

Integer

12

当前 Topic 的队列数量。
多队列可以提高单 Topic 的生产消费性能,最大不可超过当前实例剩余可用队列数。每个实例规格的队列数量限制请参考产品规格

  • 全局顺序类型的 Topic 队列数默认为 1;其他类型 Topic 的队列数和计算规格有关,n3 及以下规格的队列数默认为 6,n3 以上规格的队列数默认是 broker 组数的两倍。
  • 队列数建议设置为计算节点数的倍数,否则可能造成不同 Broker 之间数据不均衡。例如规格 rocketmq.n3.x2.medium 的计算节点数为 3,队列数建议设置为 3 的倍数,即 3、6、9 等。
  • 创建 Topic 后,还可以在Topic管理页签或 Topic 的基本信息页面中通过设置队列数方式增加队列数量,详细信息请参考设置队列数

MessageType

Integer

0

消息类型。取值说明如下:

  • 0:普通消息
  • 1:事务消息
  • 2:分区顺序消息
  • 3:全局顺序消息
  • 4:延时消息

说明

  • 一个 Topic 只能承载一种消息类型。创建 Topic 后不支持修改此 Topic 承载的消息类型。
  • 对于分区顺序消息全局顺序消息类型的 Topic,服务节点异常时可能会出现短暂的消息乱序现象。
  • 延迟消息支持自定义毫秒级延迟,延迟时长最长为 3 天或消息保留时长的 3 倍(两者取较小值)。

Description

String

描述信息

Topic 的描述信息,长度为 0~128 个字符。

AccessPolicies

Array of AccessPolicyObject

/

每个 RocketMQ 密钥对于当前 Topic 的权限,支持批量设置权限。若未设置,每个密钥对于当前 Topic 维持密钥的默认权限。详细信息请参考AccessPolicyObject

响应参数


示例

请求示例

POST /?Action=CreateTopic&Version=2023-01-01 HTTP/1.1
Content-Type: application/json
Host: rocketmq.volcengineapi.com
X-Date: 20210328T100802Z
Authorization: HMAC-SHA256 Credential=AK********/20210328/cn-shanghai/rocketmq/request, SignedHeaders=x-date, Signature=********

{
  "InstanceId": "rocketmq-cnai1f0c29ca****",
  "TopicName": "rocketmq123",
  "QueueNumber": 10,
  "MessageType": 0,
  "Description": "test",
  "AccessPolicies": [
      {
        "AccessKey":"2QdEgrGc97AL1p38Fq13****",
        "Authority": "ALL"
      }
  ]
}

响应示例

{
    "ResponseMetadata": {
        "RequestId": "2023022719194098F0DF73611FD95FA1A2",
        "Action": "CreateTopic",
        "Version": "2023-01-01",
        "Service": "RocketMQ",
        "Region": "cn-shanghai"
    },
    "Result": null
}