操作场景
本文以 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 | |
SECRET_ID、SECRET_KEY | |
queueName |
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 | |
SECRET_ID、SECRET_KEY | |
queueName |
主题模型
操作步骤
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 | |
SECRET_ID、SECRET_KEY | |
topicName |
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);
说明