有奖捉虫:行业应用 & 管理与支持文档专题 HOT

操作场景

本文以 Java SDK 为例介绍客户端接入 TDMQ CMQ 版服务并收发消息的操作步骤。

前提条件

队列模型

操作步骤

1. 在控制台创建符合需求的队列服务,参见 创建队列服务
2. 引入 CMQ 客户端相关依赖。
<!-- cmq sdk -->
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cmq-http-client</artifactId>
<version>1.0.7</version>
</dependency>
?
<!-- 云API sdk -->
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.498</version>
</dependency>
3. 发送消息。
Account account = new Account(SERVER_ENDPOINT, SECRET_ID, SECRET_KEY);
Queue queue = account.getQueue(queueName);
String msg = "hello client, this is a message. Time:" + new Date();
CmqResponse response = queue.send(msg);
参数
说明
SERVER_ENDPOINT
API 调用地址,在 TDMQ CMQ 版控制台 的队列服务 > API 请求地址处复制。
?
?
SECRET_ID、SECRET_KEY
云 API 密钥,登录 访问管理控制台,在访问密钥 > API 密钥管理页面复制。
?
?
queueName
队列名称,在 TDMQ CMQ 版控制台 的队列服务列表页面获取。
4. 消费消息。
Account account = new Account(SERVER_ENDPOINT, SECRET_ID, SECRET_KEY);
Queue queue = account.getQueue(queueName);
Message message = queue.receiveMessage();
// 消费成功,删除消息。未删除的消息,将在一定时间后可重新投递
queue.deleteMessage(message.receiptHandle);
参数
说明
SERVER_ENDPOINT
API 调用地址,在 TDMQ CMQ 版控制台 的队列服务 > API 请求地址处复制。
?
?
SECRET_ID、SECRET_KEY
云 API 密钥,登录 访问管理控制台,在访问密钥 > API 密钥管理页面复制。
?
?
queueName
队列名称,在 TDMQ CMQ 版控制台 的队列服务列表页面获取。

主题模型

操作步骤

1. 在控制台创建资源。
1.1 在控制台创建主题,参见 主题管理
1.2 给主题创建一个订阅者,参见 订阅管理
2. 引入 CMQ 客户端相关依赖。
<!-- cmq sdk -->
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cmq-http-client</artifactId>
<version>1.0.7</version>
</dependency>
?
<!-- 云API sdk -->
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.423</version>
</dependency>
3. 创建 Topic 对象。
Account account = new Account(SERVER_ENDPOINT, SECRET_ID, SECRET_KEY);
Topic topic = account.getTopic(topicName);
参数
说明
SERVER_ENDPOINT
API 调用地址,在 TDMQ CMQ 版控制台 的队列服务 > API 请求地址处复制。
?
?
SECRET_ID、SECRET_KEY
云 API 密钥,登录 访问管理控制台,在访问密钥 > API 密钥管理页面复制。
?
?
topicName
主题订阅名称,在 TDMQ CMQ 版控制台 的主题订阅列表页面获取。
4. 发送 TAG 类型消息。
String msg = "hello client, this is a message. tag=TAG1. Time:" + new Date();
List<String> tags = Collections.singletonList("TAG1");
String messageId = topic.publishMessage(msg, tags, null);
4. 发送 route 消息。
String msg = "hello client, this is a message. route(abc) Time:" + new Date();
String messageId = topic.publishMessage(msg, "abc");
5. 消费消息,使用订阅者对应的 queue 进行消费。
Account account = new Account(SERVER_ENDPOINT, SECRET_ID, SECRET_KEY);
Queue queue = account.getQueue(queueName);
Message message = queue.receiveMessage();
// 消费成功,删除消息。未删除的消息,将在一定时间后可重新投递
queue.deleteMessage(message.receiptHandle);
说明
以上是 CMQ 两种模型下的生产和消费方式的简单介绍,更多使用可参见 Demo


http://www.vxiaotou.com