Kafka镜像集群

爷,独闯天下 提交于 2020-01-25 01:50:32

作者:石文
时间:2018-12-17


背景:

Kafka多机房(多AZ)部署可以保证数据容灾和高稳定性。但是多机房部署如何解决数据一致性的问题?

目的:

Kafka集群多机房(多AZ部署)解决数据一致性的问题。

部署方案概况:

Kafka 的 MirrorMaker工具解决数据一致性的问题。基本原理是使用Kafka的客户端启动消费者和生产者,从源集群消费数据并将数据生产,写入目标的Kafka集群。

部署方案:

#1.新建镜像目标集群。
#2.新建配置文件(模拟消费者)sourceClusterConsumer.config,最简单的文件内容包括了<bootstrap.servers>和<group.id>
bootstrap.servers=10.160.100.2:9092,10.160.99.4:9092
group.id=MirrorGroupTest
#3.新建配置文件(模拟生产者)targetClusterProducer.config,最简单的文件内容包括了<bootstrap.servers>
bootstrap.servers=10.237.59.114:9092,10.237.59.178:9092
#4.执行如下命令进行数据同步
./kafka-run-class.sh kafka.tools.MirrorMaker --new.consumer --consumer.config sourceClusterConsumer.config --producer.config targetClusterProducer.config --whitelist="security_logstash" &
##参数介绍
##kafka.tools.MirrorMaker主类
##--new.consumer 代表启动一个新的消费者
##--consumer.config 消费者配置
##--producer.config 生产者配置
##--whitelist 要数据同步的topic列表,支持正则匹配

效果检查:

目标集群将不断的从源集群消费数据并写入到镜像集群中。

问题总结:

  1. 当源集群出现故障时(ZK挂了),如何保证数据一致性?

  2. 如何保证消费者可以两个集群消费的数据是不会重复的?

参考资料:

https://blog.csdn.net/zhanyuanlin/article/details/76695481

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!