1. 接口描述
接口请求域名: tdmq.tencentcloudapi.com 。
批量发送消息
注意:TDMQ 批量发送消息的接口是在 TDMQ-HTTP 的服务侧将消息打包为一个 Batch,然后将该 Batch 在服务内部当作一次 TCP 请求发送出去。所以在使用过程中,用户还是按照单条消息发送的逻辑,每一条消息是一个独立的 HTTP 的请求,在 TDMQ-HTTP 的服务内部,会将多个 HTTP 的请求聚合为一个 Batch 发送到服务端。即,批量发送消息在使用上与发送单条消息是一致的,batch 的聚合是在 TDMQ-HTTP 的服务内部完成的。
默认接口请求频率限制:1000次/秒。
推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:SendBatchMessages。 |
Version | 是 | String | 公共参数,本接口取值:2020-02-17。 |
Region | 是 | String | 公共参数,详见产品支持的 地域列表,本接口仅支持其中的: ap-bangkok, ap-beijing, ap-chengdu, ap-chongqing, ap-guangzhou, ap-hongkong, ap-jakarta, ap-mumbai, ap-nanjing, ap-seoul, ap-shanghai, ap-shanghai-fsi, ap-shenzhen-fsi, ap-singapore, ap-tokyo, eu-frankfurt, na-ashburn, na-siliconvalley, na-toronto 。 |
Topic | 是 | String | 消息要发送的topic的名字, 这里尽量需要使用topic的全路径,即:tenant/namespace/topic。如果不指定,默认使用的是:public/default 示例值:persistent://tenant/namespace/my-topic |
Payload | 是 | String | 需要发送消息的内容 示例值:hello tdmq |
StringToken | 否 | String | String 类型的 token,可以不填,系统会自动获取 示例值:abcdefghijklmnopqrstovwxyz |
ProducerName | 否 | String | producer 的名字,要求全局是唯一的,如果不设置,系统会自动生成 示例值:producer1 |
SendTimeout | 否 | Integer | 单位:s。消息发送的超时时间。默认值为:30s 示例值:30 |
MaxPendingMessages | 否 | Integer | 内存中允许缓存的生产消息的最大数量,默认值:1000条 示例值:1000 |
BatchingMaxMessages | 否 | Integer | 每一个batch中消息的最大数量,默认值:1000条/batch 示例值:1000 |
BatchingMaxPublishDelay | 否 | Integer | 每一个batch最大等待的时间,超过这个时间,不管是否达到指定的batch中消息的数量和大小,都会将该batch发送出去,默认:10ms 示例值:10L |
BatchingMaxBytes | 否 | Integer | 每一个batch中最大允许的消息的大小,默认:128KB 示例值:128*1024 |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
MessageId | String | 消息的唯一标识 注意:此字段可能返回 null,表示取不到有效值。 示例值:{"Response":{"MessageId":"26365:1475:0"}} |
ErrorMsg | String | 错误消息,返回为 "",代表没有错误 注意:此字段可能返回 null,表示取不到有效值。 示例值:"" |
RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 成功发送多条消息
输入示例
https://tdmq.tencentcloudapi.com/?Action=SendBatchMessages
&Topic=tenant/namespace/topic
&Payload="hello TDMQ"
&<公共请求参数>
输出示例
{
"Response": {
"RequestId": "36713f94-d07d-4b96-babf-42d139276f23",
"MessageId": "71:12:0:0",
"ErrorMsg": ""
}
}
5. 开发者资源
腾讯云 API 平台
腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。
API Inspector
用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。
SDK
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
- Tencent Cloud SDK 3.0 for Python: GitHub Gitee
- Tencent Cloud SDK 3.0 for Java: GitHub Gitee
- Tencent Cloud SDK 3.0 for PHP: GitHub Gitee
- Tencent Cloud SDK 3.0 for Go: GitHub Gitee
- Tencent Cloud SDK 3.0 for Node.js: GitHub Gitee
- Tencent Cloud SDK 3.0 for .NET: GitHub Gitee
- Tencent Cloud SDK 3.0 for C++: GitHub Gitee
- Tencent Cloud SDK 3.0 for Ruby: GitHub Gitee
命令行工具
6. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
FailedOperation.CreateProducerError | 创建producer出错。 |
FailedOperation.CreatePulsarClientError | 创建TDMQ client的出错。 |
FailedOperation.MaxMessageSizeError | 最大消息超过1MB。 |
FailedOperation.MessageIDError | 上传的msgID错误。 |
FailedOperation.ReceiveError | 接收消息出错。 |
FailedOperation.ReceiveTimeout | 接收消息超时,请重试。 |
FailedOperation.SendMessageTimeoutError | 消息发送超时。 |
FailedOperation.TopicTypeError | 请使用partition topic。 |
InvalidParameter.TenantNotFound | 上传的 tenant name 错误。 |
InvalidParameter.TokenNotFound | 没有获取到正确的 token。 |
InvalidParameterValue.TopicNotFound | 上传的topic name错误。 |