tencent cloud

文档反馈

CMQ 队列迁移至 TDMQ CMQ 版

最后更新时间:2022-08-12 10:21:29

    操作场景

    本文以一个 Java 客户端为例,为您介绍将 CMQ 队列迁移至 TDMQ CMQ 版的操作步骤。

    迁移原理

    方案总览

    整体流程

    • 1在控制台上将 CMQ 的队列和主题元数据迁移至 TDMQ CMQ 版中。
    • 2旧的消费者保持不动,消费端新建消费者,接入到 TDMQ CMQ 版的队列中。
    • 3生产者停止向原 CMQ 队列生产消息,并切换生产流接入到 TDMQ CMQ 版队列中。
    • 4旧的消费者继续消费原 CMQ 队列中的存量消息,消费完成后下线 CMQ 业务消费者。

    前提条件

    参考 SDK 文档部署好 CMQ 队列的生产端和消费端服务,并且运行正常。以下迁移步骤以 TCP SDK 为例。

    操作步骤

    步骤1:迁移元数据

    1. 登录 CMQ 控制台
    2. 在左侧导航栏选择队列,选择好地域后,单击页面上方的同步到 TDMQ
    3. 在弹出的窗口中单击启动,将该地域下的所有队列和主题元数据迁移至 TDMQ CMQ 版中。
    4. 迁移完成后,登录 TDMQ 控制台
    5. 在左侧导航栏选择队列服务,选择相同的地域可看到迁移到 TDMQ CMQ 版的队列。

    步骤2:新建消费者

    1. 在消费端新建一个消费者,并接入到 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 = "****";
      
      • NameServerAddress:API 调用地址,在 TDMQ CMQ 版控制台队列服务 > API请求地址处复制。
      • SecretId、SecretKey:云API密钥,登录 访问管理控制台,在访问密钥 > API密钥管理页面复制。
      • queue:填写队列名称。
    2. 运行代码,查看消费端服务是否能正常运行无报错。

    3. 通过 TDMQ CMQ 版控制台队列服务 > 发送消息向消息接收侧发送测试消息,验证消费者服务是否可以正常消费。

    步骤3:切换生产流

    1. 将原生产者的 NameServer 修改为 TDMQ CMQ 版队列的接入地址,在 TDMQ CMQ 版控制台队列服务 > API请求地址处复制。
    2. 运行生产消息程序,验证生产者服务是否可以正常发送消息。

    步骤4:下线旧消费者

    等待旧的消费者继续消费完原 CMQ 队列中的存量消息后,下线 CMQ 业务消费者。

    CMQ 控制台队列服务 > 队列 > 监控页面可查看 CMQ 队列中堆积的消息数量,当堆积消息数量为0时,代表原 CMQ 队列中的存量消息已被消费完成。

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持