Kafka使用MirrorMaker同步数据的两种方式

1.前言

MirrorMaker 是 Kafka官方提供的跨数据中心的流数据同步方案。原理是通过从 原始kafka集群消费消息,然后把消息发送到 目标kafka集群。操作简单,只要通过简单的 consumer配置和 producer配置,然后启动 Mirror,就可以实现准实时的数据同步。

2.独立 Kafka集群使用 MirrorMaker

2.1 开启远程连接

这里需要确保 目标Kafka集群(接收数据的那个集群)已开启远程连接,开启方法如下:

# 修改 kafka配置文件中下面两个配置
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.xx.xx:9092

其中 192.168.xx.xx是对外提供服务的IP,修改为目标集群的 IP即可。

2.2 准备 consumer.properties

这个配置文件指定原始集群的信息。具体内容如下:

# 原始集群的broker list
bootstrap.servers=host1:9092,host2:9093 
# 指定一个新的 id即可
group.id=test-consumer-group1
auto.offset.reset=earliest

2.3 准备 producer.properties

这个配置文件指定目标集群的信息。具体内容如下:

# 目标集群的broker list
bootstrap.servers=host5:9092,host6:9093
# 数据压缩方式,加快数据同步速度
compression.type=gzip 

2.4 启动 MirrorMaker开始同步数据

进入 kafka安装目录后执行下面的命令:

./kafka-mirror-maker.sh --consumer.config /opt/kafka/consumer.properties --producer.config /opt/kafka/producer.properties --whitelist topic001

这里就需要用到前面两个准备好的文件了,另外,–whitelist指定需要同步的 topic,–blacklist是不需要同步的,这两个符合 java正则表达式形式。

3.在 CDH中开启 MirrorMaker

3.1 界面添加 MirrorMaker实例

在这里插入图片描述
在这里插入图片描述

3.2 配置Broker和需要同步的Topic

这里需要注意:所有需要同步的 topic要预先在 目标kafka集群中创建。

在这里插入图片描述

3.3 重启MirrorMaker实例

前面步骤顺利执行完,界面会多一个 Kafka MirrorMaker实例,如下,重启即可

在这里插入图片描述

4.总结

CDH对 Kafka MirrorMaker的支持度不错,稳定性也能经得起时间的检验。另外,这种备份方式属于实时备份,很适合对数据完整性和及时性要求较高的项目,能最大程度地确保通过 kafka流转的数据的及时可用。还有一个好处是,当 kafka集群1因为某种原因无法工作时,可以迅速切换到集群2,且两个集群的数据几乎一致。

猜你喜欢

转载自blog.csdn.net/Daphnisz/article/details/128406892