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

CreateTopic

最近更新时间2024.03.06 16:49:22

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

调用 CreateTopic 接口创建 Topic。

注意事项

请求频率:该接口请求频率限制为 100 次/秒;单用户请求频率限制为 20 次/秒

使用说明

在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
}