Kafka 到 Kafka 数据同步
· 阅读需 3 分钟
简述
Kafka 为处理实时数据提供了一个统一、高吞吐、低延迟的平台,其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”,这使它作为企业级基础设施来处理流式数据非常有价值。因此实现 Kafka 到 Kafka 的数据同步也成了一项重要工作。
本篇文章主要介绍如何使用 CloudCanal 构建一条 Kafka 到 Kafka 的数据同步链路。
技术点
消费者消息推送
在任务创建后,CloudCanal 会自动创建消费组,并订阅需要同步消息的 Topic。CloudCanal 从源端拉取到消息后,会将消息推送到目标端。
心跳机制
在源端 Kafka 未产生消息时,CloudCanal 便无法正常感知消息的延时时间。
我们采用心跳模式解决这个问题。在 打开 Kafka 源端心跳 后,CloudCanal 会监测所有分区的消费位点,若所有分区的最新的位点与当前位点差值均小于设定的最长位点间隔(通过 dbHeartbeatToleranceStep 参数设置),则会产生一条包含当前系统时间的心跳记录。CloudCanal 在消费到该记录后,会根据其包含的时间计算延迟。
操作示例
步骤1: 配置 Kafka 权限
参考 Kafka 需要的权限 文档,设置 CloudCanal 需要的账号权限。
步骤2: 安装 CloudCanal
请参考 全新安装(Docker Linux/MacOS),下载安装 CloudCanal 私有部署版本。