GO SDK
最近更新时间: 2025-10-11 18:10:00
操作场景
本文以 Go 语言为例介绍通过 HTTP 协议接入 TDMQ Pulsar 版并收发消息的操作方法。、
前提条件
操作步骤
- 准备环境。
- 使用镜像加速下载。
- Linux 或 MacOS。
- 使用镜像加速下载。
export GOPROXY=https://mirrors.tencent.com/go/
2. Windows。set GOPROXY=https://mirrors.tencent.com/go/
- 安装基础包与产品包。
- 安装公共基础包。
go get -v -u github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common
2. 安装 TDMQ 对应的产品包。go get -v -u github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq
说明:
更多详情可参见 Go SDK 安装。
- 创建 TDMQ 客户端。
// 认证信息
credential := common.NewCredential(SECRET_ID, SECRET_KEY)
cpf := profile.NewClientProfile()
cpf.HttpProfile.Endpoint = ENDPOINT
// 创建tdmq客户端
client, _ := tdmq.NewClient(credential, REGION, cpf)
| 参数 | 说明 |
|---|---|
| SECRET_ID、SECRET_KEY | 云 API 密钥,登录 访问管理控制台,在访问密钥 > API 密钥管理页面复制。![]() |
| ENDPOINT | 接口请求域名: tdmq.tencentcloudapi.com |
| REGION | 集群所属地域。 |
- 发送消息。
request := tdmq.NewSendMessagesRequest()
// 已授权角色密钥
request.StringToken = common.StringPtr(token)
// 已授权角色名称
request.ProducerName = common.StringPtr(userName)
// 设置topic名称, 格式为:集群(租户)ID/命名空间/Topic名称
request.Topic = common.StringPtr(topicName)
// 消息内容
request.Payload = common.StringPtr("this is a new message.")
// 发送消息超时时间
request.SendTimeout = common.Int64Ptr(3000)
// 发送消息
response, err := client.SendMessages(request)
if _, ok := err.(*errors.TencentCloudSDKError); ok {
fmt.Printf("An API error has returned: %s", err)
return
}
if err != nil {
panic(err)
}
| 参数 | 说明 |
|---|---|
| token | 角色密钥,在 角色管理 页面复制密钥列复制。![]() |
| userName | 角色名称,在 角色管理 页面复制名称列复制。 |
| topicName | Topic 名称,格式为:集群(租户)ID/命名空间/Topic 名称,示例:pulsar-xxx/sdk_http/topic1。可以从控制台上 Topic 管理 页面直接复制。 |
- 消费消息。
request := tdmq.NewReceiveMessageRequest()
// 设置topic名称, 格式为:集群(租户)ID/命名空间/Topic名称
request.Topic = common.StringPtr(topicName)
// 设置订阅名称
request.SubscriptionName = common.StringPtr(subName)
// consumer接收的消息会首先存储到receiverQueueSize这个队列中,用作调优接收消息的速率
request.ReceiverQueueSize = common.Int64Ptr(10)
// 设置consumer初始接收消息的位置,可选参数为:Earliest, Latest
request.SubInitialPosition = common.StringPtr("Latest")
// 消费消息
response, err := client.ReceiveMessage(request)
if _, ok := err.(*errors.TencentCloudSDKError); ok {
fmt.Printf("An API error has returned: %s", err)
return
}
if err != nil {
panic(err)
}
| 参数 | 说明 |
|---|---|
| topicName | Topic 名称,格式为:集群(租户)ID/命名空间/Topic名称,示例:pulsar-xxx/sdk_http/topic1。可以从控制台上 Topic 管理页面直接复制。 |
| subName | 订阅名称,可在控制台集群管理>消费者tab 页面复制。 |
- 确认消息。
request := tdmq.NewAcknowledgeMessageRequest()
// 设置消息id
request.MessageId = common.StringPtr(messageId)
// 设置topic名称, 格式为:集群(租户)ID/命名空间/Topic名称
request.AckTopic = common.StringPtr(topicName)
// 设置订阅信息
request.SubName = common.StringPtr(subName)
// 确认消息
response, err := client.AcknowledgeMessage(request)
if _, ok := err.(*errors.TencentCloudSDKError); ok {
fmt.Printf("An API error has returned: %s", err)
return
}
if err != nil {
panic(err)
}
| 参数 | 说明 |
|---|---|
| messageId | 消费消息获取导的消息 ID。 |
| topicName | Topic名称,格式为:集群(租户)ID/命名空间/Topic名称,示例:pulsar-xxx/sdk_http/topic1。可以从控制台上 Topic 管理 页面直接复制。 |
| subName | 订阅名称,可在控制台集群管理 > 消费者 tab 页面复制。 |
说明:
上述是对消息收发操作的简单介绍,完整实例可参见 下载 Demo 或 云API Explorer。

