Kafka集群数据同步至另一个Kafka集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka集群数据同步至另一个Kafka集群相关的知识,希望对你有一定的参考价值。

参考技术A 源端集群
kafka01:10.1.1.10
kafka02:10.1.1.11
kafka03:10.1.1.12
目标集群
kafka11:10.1.1.13
kafka12:10.1.1.14
kafka13:10.1.1.15
公司新业务需要从其他部门取到Kafka中的数据到我们的Kafka集群,这里使用Kafka自带的kafka-mirror-maker工具进行数据的同步,数据流向为源端数据到目标集群,具体配置看下面配置,这里只提供基础的配置,生产中使用请去官网根据文档配置自己需要的个性化配置。
在目标端集群配置$KAFKA_HOME/config/consumer.properties
group.id可以自己定义

在目标端集群配置$KAFKA_HOME/config/producer.properties

在目标端及源端各自新建test02的topic

在目标端启动同步进程(如要后台启动请加nohup)

===测试===
在源端启动生产者进程

在目标端启动消费者进程,在消费端能看到生产者发送的信息即可

Kafka MirrorMaker 跨集群同步工具

一、MirrorMaker介绍

MirrorMaker是Kafka附带的一个用于在Kafka集群之间制作镜像数据的工具。该工具从源集群中消费并生产到目标群集。这种镜像的常见用例是在另一个数据中心提供副本。

 

技术图片 图1. MirrorMaker

对于迁移的topic而言,topic名字一样, partition数量可以不一样,消息的offset会不一样。

二、注意事项

1)whitelist和blacklist支持正则表达式。比如需要包含两个topic可以这样写,--whitelist ‘A|B‘ or --whitelist ‘A,B‘ ,或者想迁移所有topic可以这样写 --whitelist ‘*‘

2)注意在迁移之前创建好相关topic以及规划好partition数量。

3)老版本和新版本迁移主要考虑consumer和producer的兼容性

4)如果允许的话,建议将MirrorMaker部署在目标集群内,这是因为如果一旦发生网络分区,消费者与源集群断开连接比生产者与目标集群断开连接要安全。如果消费者断开连接,那么只是当前读取不到数据,但是数据仍然在源集群内,并不会丢失;而生产者断开连接,MirrorMaker便生产不了数据,如果MirrorMaker本身处理不当,可能会丢失数据。

5)开始之前配置好限流,防止影响原来集群的正常工作。

三、进度监控

1) 检测MirrorMaker提交到源集群的位移。我们可以使用kafka-consumer-groups来检测分区的最新位移以及MirrorMaker提交的位移,通过计算差值得到落后间隔。

2) 查看Ckafka的Topic相关监控,查看当前进度

以上是关于Kafka集群数据同步至另一个Kafka集群的主要内容,如果未能解决你的问题,请参考以下文章

KafkaMM2同步Kafka集群时如何自定义复制策略(ReplicationPolicy)

kafka源码系列之mysql数据增量同步到kafka

Kafka MirrorMaker 跨集群同步工具

Kafka 使用 MirrorMaker 跨机房数据同步实践

kafka 镜像操作

Canal实时同步MySQL数据至Kafka集群,安装部署