更新时间:2022-02-21 GMT+08:00

创建队列

功能介绍

每个project_id默认只能创建30个队列。

创建队列时系统内部完成初始化需要1-3秒,如果创建队列后立即进行操作,可能会导致生产消息、消费消息、查询队列详情、创建消费组和删除队列等操作失败。建议3秒后再操作该队列。

URI

POST /v1.0/{project_id}/queues

参数说明请参见表1

表1 参数说明

名称

类型

是否必选

说明

project_id

String

项目ID。

请求消息

请求参数

参数说明请参见表2

表2 参数说明

名称

类型

是否必选

说明

name

String

队列的名称,必须唯一。

长度不超过64位的字符串,包含a~z,A~Z,0~9、中划线(-)和下划线(_)。

创建队列后无法修改名称。

queue_mode

String

队列类型。

取值范围:

  • NORMAL:普通队列,更高的并发性能,不保证先入先出(FIFO)的严格顺序。
  • FIFO:有序队列,保证消息先入先出(FIFO)的严格顺序。
  • KAFKA_HA:高可靠模式的kafka队列。消息多副本同步落盘,保证消息的可靠性。
  • KAFKA_HT:高吞吐模式的kafka队列。消息副本异步落盘,具有较高的性能。

默认值:NORMAL

description

String

队列的描述信息。

长度不超过160位的字符串,不能包含尖括号<>。

redrive_policy

String

仅当queue_mode为“NORMAL”或者“FIFO”时,该参数有效。

是否开启死信消息,死信消息是指无法被正常消费的消息。

当达到最大消费次数仍然失败后,DMS会将该条消息转存到死信队列中,有效期为72小时,用户可以根据需要对死信消息进行重新消费。

消费死信消息时,只能消费该消费组产生的死信消息。

有序队列的死信消息依然按照先入先出(FIFO)的顺序存储在死信队列中。

取值范围:

  • enable:开启
  • disable:不开启

默认值:disable

max_consume_count

Integer

仅当redrive_policy为enable时,该参数必选。

最大确认消费失败的次数,当达到最大确认失败次数后,DMS会将该条消息转存到死信队列中。

取值范围:1~100

retention_hours

Integer

指定kafka队列的消息保存时间,单位为小时。

仅当queue_mode为KAFKA_HA或者KAFKA_HT才有效。

取值范围 : 1-72(小时)

请求示例

创建FIFO队列:

{
  "name" : "queue-001",
  "description" : "This is a FIFO queue.",
  "queue_mode" : "FIFO",
  "redrive_policy" : "enable",
  "max_consume_count" : 3
}
创建Kafka队列:
{
  "name" : "queue-002",
  "description" : "This is a Kafka queue.",
  "queue_mode" : "KAFKA_HA",
  "retention_hours" : 36
}

响应消息

响应参数

响应参数如表3所示。

表3 响应参数

参数

类型

描述

id

String

队列ID。

name

String

队列的名称。

kafka_topic

String

仅Kafka队列才有该响应参数。

使用Kafka SDK时的Kafka topic的ID。

响应示例

创建FIFO队列:

{
    "id": "9bf46390-38a2-462d-b392-4d5b2d519c55", 
    "name": "queue_001"
}
创建Kafka队列:
{
  "id" : "3ec7a4a2-541b-430a-9c2b-77fa4b64ed8",
  "name" : "queue_002",
  "kafka_topic" : "k-fdc60cfe407a4b2a96a498efda55c785-3ec7a4a2-541b-430a-9c2b-77fa4b64ed8"
}

状态码

操作成功的状态码如表4所示,操作失败的状态码请参考状态码

表4 状态码

状态码

描述

201

队列创建成功。