接口描述
本接口(BatchPublishMessage)用于发布批量(目前最多16条)消息到指定的主题。
公网/内网接口请求域名,在 TDMQ CMQ 版控制台 的主题模型 > API 请求地址处复制。CMQ 的 API 调用地址示例如下:
- 公网地址:
https://cmq-gz.publicXXX.tencenttdmq.com
- 内网地址:
http://gz.mqadapter.cmq.tencentyun.com
注意:
- 不同地域的 API 调用地址 URL 会有所变化。
- 任何时候(包括内测期间),如果使用外网域名产生公网下行流量,都会收取流量费用。 所以强烈建议服务在腾讯云上的用户使用内网域名,内网不会产生流量费用。
输入参数
以下请求参数列表仅列出了接口请求参数,其它参数请参见 公共请求参数 页面。
参数名称 | 是否必选 | 类型 | 描述 |
---|---|---|---|
topicName | 是 | String | 主题名字,在单个地域同一账号下唯一。主题名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 |
msgBody.n | 是 | String | 消息正文。表示这一批量中的一条消息。目前批量消息数量不能超过16条。 为方便用户使用,n 从0开始或者从1开始都可以,但必须连续,例如发送两条消息,可以是(msgBody.0, msgBody.1),或者(msgBody.1, msgBody.2)。 注意:由于目前限制所有消息大小总和(不包含消息头和其他参数,仅msgBody)不超过64k,所以建议提前规划好批量发送的数量。 |
msgTag.n | 否 | String | 消息过滤标签。消息标签(用于消息过滤)。标签数量不能超过5个,每个标签不超过16个字符。与 Subscribe 接口的 filterTag 参数配合使用,规则: (1)如果 filterTag 没有设置,则无论 msgTag 是否有设置,订阅接收所有发布到 Topic 的消息; (2)如果 filterTag 数组有值,则只有数组中至少有一个值在 msgTag 数组中也存在时(即 filterTag 和 msgTag 有交集),订阅才接收该发布到 Topic 的消息; (3)如果 filterTag 数组有值,但 msgTag 没设置,则不接收任何发布到 Topic 的消息,可以认为是(2)的一种特例,此时 filterTag 和 msgTag 没有交集。规则整体的设计思想是以订阅者的意愿为主。 |
routingKey | 否 | String | 长度<=64 字节,该字段用于表示发送消息的路由路径,最多含有 15 个“.”, 即最多1 6 个词组。 消息发送到 topic 类型的 exchange 上时不能随意指定 routingKey,需要符合上面的格式要求。一个由订阅者指定的带有 routingKey 的消息将会推送给所有 BindingKey 能与之匹配的消费者,这种匹配情况有两种关系: 1 *(星号):可以替代一个单词(一串连续的字母串); 2 #(井号):可以匹配一个或多个字符。 |
输出参数
参数名称 | 类型 | 描述 |
---|---|---|
code | Int | 0:表示成功,others:错误,详情请参见 公共错误码。 |
message | String | 错误提示信息。 |
requestId | String | 服务器生成的请求 ID,出现服务器内部错误时,用户可提交此 ID 给后台定位问题。 |
msgList | Array | 服务器生成消息的唯一标识 ID 列表,每个元素是一条消息的信息。 |
msgList 定义如下:
参数名称 | 类型 | 描述 |
---|---|---|
msgId | String | 服务器生成消息的唯一标识 ID。 |
错误码
详情请参见 公共错误码。
示例
输入:
https://domain/v2/index.php?Action=BatchPublishMessage
&topicName=test-topic-123
&msgBody.1=helloworld1
&msgBody.2=helloworld2
&<公共请求参数>
输出:
{
"code" : 0,
"message" : "",
"requestId":"14534664555",
"msgList":
[
{
"msgId":"123345346"
},
{
"msgId":"456436346"
}
]
}