本文以一个 Java 客户端为例,为您介绍将 CMQ 队列迁移至 TDMQ CMQ 版的操作步骤。
迁移原理
方案总览
整体流程
参考 SDK 文档部署好 CMQ 队列的生产端和消费端服务,并且运行正常。以下迁移步骤以 TCP SDK 为例。
在消费端新建一个消费者,并接入到 TDMQ CMQ 版队列中。
Consumer consumer = new Consumer();
// 私有网络地址: http://{region}.mqadapter.cmq.tencentyun.com 支持腾讯云私有网络的云服务器内网访问
// 公网地址: https://cmq-{region}.public.tencenttdmq.com
consumer.setNameServerAddress("http://****.com");
// 设置SecretId,在控制台上获取,必须设置
consumer.setSecretId("****");
// 设置SecretKey,在控制台上获取,必须设置
consumer.setSecretKey("****");
// 设置签名方式,可以不设置,默认为SHA1
consumer.setSignMethod(ClientConfig.SIGN_METHOD_SHA256);
// 批量拉取时最大拉取消息数量,范围为1-16
consumer.setBatchPullNumber(16);
// 设置没有消息时等待时间,默认10s。可在consumer.receiveMsg等方法中传入具体的等待时间
consumer.setPollingWaitSeconds(6);
// 设置请求超时时间, 默认3000ms
// 如果设置了没有消息时等待时间为6s,超时时间为5000ms,则最终超时时间为(6*1000+5000)ms
consumer.setRequestTimeoutMS(5000);
// 消息拉取的队列名称
final String queue = "****";
运行代码,查看消费端服务是否能正常运行无报错。
通过 TDMQ CMQ 版控制台 的队列服务 > 发送消息向消息接收侧发送测试消息,验证消费者服务是否可以正常消费。
等待旧的消费者继续消费完原 CMQ 队列中的存量消息后,下线 CMQ 业务消费者。
在 CMQ 控制台 的队列服务 > 队列 > 监控页面可查看 CMQ 队列中堆积的消息数量,当堆积消息数量为0时,代表原 CMQ 队列中的存量消息已被消费完成。
本页内容是否解决了您的问题?