当前位置: 首页 > article >正文

Kafka 到 Kafka 数据同步

简述

Kafka 为处理实时数据提供了一个统一、高吞吐、低延迟的平台,其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”,这使它作为企业级基础设施来处理流式数据非常有价值。因此实现 Kafka 到 Kafka 的数据同步也成了一项重要工作。

本篇文章主要介绍如何使用 CloudCanal 构建一条 Kafka 到 Kafka 的数据同步链路。

技术点

消费者消息推送

在任务创建后,CloudCanal 会自动创建消费组,并订阅需要同步消息的 Topic。CloudCanal 从源端拉取到消息后,会将消息推送到目标端。

心跳机制

Kafka 在记录消费者的位点时只会保存最新一条消息的时间,在源端 Kafka 未发送消息时,CloudCanal 便无法正常感知消息的延时时间。

我们采用了主动发送心跳消息的方式解决这个问题,在 打开 Kafka 源端心跳 后,源端会定时向目标端发送一条空消息,在目标端接收到消息后,CloudCanal 会更新延时时间,并过滤掉该条消息。根据业务需要,可设置 dbHeartbeatIntervalSec 参数,控制发送消息的间隔。

操作示例

步骤1: 配置 Kafka 权限

参考 Kafka 需要的权限 文档,设置 CloudCanal 需要的账号权限。

步骤2: 安装 CloudCanal

请参考 全新安装(Docker Linux/MacOS),下载安装 CloudCanal 私有部署版本。

步骤 3: 添加数据源

登录 CloudCanal 控制台,点击 数据源管理 > 新增数据源

步骤4: 创建任务

  1. 点击 同步任务 > 创建任务

  2. 选择源和目标数据源,并分别点击 测试连接

  3. 选择同步的 消息格式。倘若没有特定的消息格式,请选择 原始消息格式

  4. 选择 增量同步

  5. 选择需要同步的 Topic。

  6. 点击 确认创建

    任务创建过程将会进行一系列操作,点击 同步设置 > 异步任务,找到任务的创建记录并点击 详情 即可查看。

    Kafka 源端的任务创建会有以下几个步骤:

    • 结构迁移
    • 分配任务执行机器
    • 创建任务状态机
    • 完成任务创建
  7. 等待任务自动流转。

    当任务创建完成,CloudCanal 会自动进行任务流转,其中的步骤包括:

    • 结构迁移: Kafka 源端会自动为对端创建 Topic,如果目标 Topic 在对端已存在,则会忽略。
    • 增量数据同步: 增量数据将会持续地同步到对端数据库,并且保持实时(秒级别延迟)。

总结

本文简单介绍了如何使用 CloudCanal 进行 Kakfa 到 Kafka 数据同步,助力企业快速构建数据管道,增强数据分析能力。


http://www.kler.cn/a/397433.html

相关文章:

  • go环境搭建
  • SpringBoot 应用出错 Comparison method violates its general contract!
  • 测试实项中的偶必现难测bug--互斥逻辑异常
  • 数据结构-二叉树及其遍历
  • Node.js GET/POST请求、WEB模块使用介绍 (基础介绍 八)
  • 【Vitepress报错】Error: [vitepress] 8 dead link(s) found.
  • 牛客挑战赛77
  • PHP反序列化靶场(php-SER-libs-main 第一部分)
  • Servlet⾥面的doPost-doGet和路路径匹配讲解(笔记)
  • 第 11 章 - Go语言函数
  • Python爬虫下载新闻,Flask展现新闻(2)
  • JS学习日记(jQuery库)
  • webman使用中间件验证指定的控制器及方法[青锐CC]
  • ubuntu20.04安装FLIR灰点相机BFS-PGE-16S2C-CS的ROS驱动
  • Redisson 中开启看门狗(watchdog)机制
  • 不用来回切换,一个界面管理多个微信
  • FPGA使用Verilog实现CAN通信
  • “高级Java编程复习指南:深入理解并发编程、JVM优化与分布式系统架构“
  • OpenCV双目立体视觉重建
  • 在openi平台 基于华为顶级深度计算平台 openmind 动手实践
  • OSS文件上传
  • 基于微信小程序的校园超市购物系统设计与实现,LW+源码+讲解
  • onlyoffice Command service(命令服务)使用示例
  • 【HarmonyOS】鸿蒙应用低功耗蓝牙BLE的使用心得 (三)
  • 要卸载 Grafana 或者从 TiDB 集群中删除 Grafana 服务节点,你需要按以下步骤操作
  • leetcode 35. 搜索插入位置 简单