tencent cloud

文档反馈

SCF + Ckafka 实现消息转储至云数据库 MySQL(CDB)

最后更新时间:2022-04-29 10:52:08

    操作场景

    消息队列 CKafka 支持用户转储消息的能力,您可以将 CKafka 消息转储至云数据库 MySQL(CDB)便于对筛选数据做持久化存储。

    前提条件

    该功能目前依赖云函数(SCF)、云数据库(CDB)服务。使用时需提前开通云函数 SCF ,云数据库MySQL 等相关服务及功能。

    操作步骤

    转储 MySQL 数据库的方案将使用 SCF 的 CKafka 触发器进行,通过 CKafka 触发器消息转储到 MySQL 数据库。

    1. 登录 CKafka 控制台

    2. 在左侧导航栏单击实例列表,单击目标实例的“ID/名称”,进入实例详情页。

    3. 在实例详情页,单击topic管理标签页,单击操作列的消息转储

    4. 单击添加消息转储,选择转储类型为通用模板

      • 转储类型:选择通用模版
      • 起始位置:转储时历史消息的处理方式,topic offset 设置。
      • 云函数授权:知晓并同意开通创建云函数,该函数创建后需用户前往云函数设置更多高级配置及查看监控信息。
    5. 创建完成后单击函数管理链接,进入云函数控制台进行下一步操作。

    6. 在云函数控制台上传 CKafkaToMysql 模板代码(Github下载地址)。

    7. 在云函数的函数配置中添加如下环境变量。

      dbhost=172.16.0.59 // 数据库VPC HOST地址
      dbuser=tabor // 数据库用户名
      dbpwd=1237018 // 数据库密码
      dbdatabase=canmengtest // 数据库名
      dbtable=123321 // 数据表名
      
    8. 在云函数的函数配置中修改 VPC 网络,将云函数 VPC 网络与云数据库 VPC 网络设为一致即可。

    9. 在云数据库 MySQL DMC控制台 添加相关数据库,数据表与表结构。

      • 创建数据库,与环境变量中的数据库名相同:

      • 创建数据表,与环境变量中的数据库表相同:

      • 创建表结构,与函数代码中的插入结构相同,默认插入 offset、Megs 列,可在 index.py 文件的33行修改相关插入结构:
        数据表与数据结构创建亦可直接通过 MySQL 命令直接创建:

        CREATE TABLE `test_table` ( `offset` VARCHAR(255) NOT NULL , `Megs` LONGTEXT NOT NULL ) ENGINE = InnoDB;
        
    10. 在云函数触发器控制台中打开 CKakfa 触发器。

    产品限制和费用计算

    • 转储速度与 CKafka 实例峰值带宽上限有关,如出现消费速度过慢,请检查 CKafka 实例的峰值带宽。
    • CKafkaToMySQL 方案采用 CKafka 触发器,重试策略与最大消息数等设置参见 CKafka 触发器
    • 使用消息转储 MySQL 能力,默认转储的信息为 CKafka 触发器的 offset,msgBody 数据,如需自行处理参见 CKafka 触发器的事件消息结构
    • 该功能基于云函数 SCF 服务提供。SCF 为用户提供了一定 免费额度 ,超额部分产生的收费,请以 SCF 服务的 计费规则 为准。
    联系我们

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

    技术支持

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

    7x24 电话支持