Kafka MirrorMaker 搭建異地同步集羣

Kafka MirrorMaker 搭建異地同步集羣

由於業務需要,要求異地的兩套kafka集羣同步數據,於是使用樂kafka自帶的MirrorMaker工具kafka版本(kafka_2.12-2.1.0),zookeeper版本(zookeeper-3.4.13)。

下面介紹的是本地測試部署的環境,

啓動兩套kafka-zookeeper 環境

第一套集羣的zookeeper使用默認端口2181,kafka使用默認9092端口。默認配置可不做更改,只需將zookeeper 的config目錄下zoo_sample.cfg複製爲zoo.cfg即可啓動。(啓動時先啓動zookeeper再啓動kafka)

在這裏插入圖片描述
部署啓動的具體配置步驟課可參考我的另一篇博客
https://blog.csdn.net/w4187402/article/details/84848201

第二套配置時需要修改kafka和zookeeper的啓動端口和日誌目錄,避免和第一套集羣衝突。

zoo.config文件中修改數據目錄和啓動端口
在這裏插入圖片描述
kafka的config文件夾中server.properties文件修改監聽端口和zookeeper連接端口及日誌目錄
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

修改完成後啓動第二套集羣(啓動命令在https://blog.csdn.net/w4187402/article/details/84848201中有介紹)。

正常啓動後命令窗口是常駐的,如下四個窗口(本人已運行過生產者消費者所以會有日誌變化)。
在這裏插入圖片描述

創建consumer配置文件(採用拉模型,網絡中斷下的一個消費者遠比一個生產者安全的多)

第一套集羣目錄下創建文件
sourceClusterConsumer.config

bootstrap.servers=localhost:9092
group.id=test-mirror-consumer-group

第二套集羣目錄下創建文件
sourceClusterConsumer.config

bootstrap.servers=localhost:9093
group.id=test-mirror-consumer-group

創建producer配置文件

第一套集羣目錄下創建文件
targetClusterProducer.config

bootstrap.servers=localhost:9093

第二套集羣目錄下創建文件
targetClusterProducer.config

bootstrap.servers=localhost:9092

創建完成後的kafka0
在這裏插入圖片描述
創建完成後的kafka1
在這裏插入圖片描述

啓動MirrorMaker進程

命令如下

.\kafka_2.12-2.1.0\bin\windows\kafka-run-class.bat kafka.tools.MirrorMaker --consumer.config sourceClusterConsumer.config --num.streams 1 --producer.config targetClusterProducer.config --whitelist=".*"

其中
.\kafka_2.12-2.1.0\bin\windows\kafka-run-class.bat 是啓動腳本(kafka自帶)
kafka.tools.MirrorMaker 是腳本中的main方法
–consumer.config 指定消費者配置文件
–num.streams 消費者線程數
–producer.config 指定生產者配置文件
–whitelist=".*" 白名單配置

由於我需要兩臺集羣互相同步但是數據不能重複消費,所以兩臺集羣生產者消費者的topic需要設置爲不相同的兩個名稱。白名單的配置在這時就起作用了,如果白名單配置爲 –whitelist=".*" 也就是全部同步。會導致一個生產者發送消息後,這條消息會在兩個集羣中來回傳遞,你會看到一個消費者接收到這條消息的幾百個副本。
最終我的集羣1啓動腳本爲

.\kafka_2.12-2.1.0\bin\windows\kafka-run-class.bat kafka.tools.MirrorMaker --consumer.config sourceClusterConsumer.config --num.streams 1 --producer.config targetClusterProducer.config --whitelist="video"

集羣2啓動腳本爲

.\kafka_2.12-2.1.0\bin\windows\kafka-run-class.bat kafka.tools.MirrorMaker --consumer.config sourceClusterConsumer.config --num.streams 1 --producer.config targetClusterProducer.config --whitelist="video1"

啓動後命令行如下
在這裏插入圖片描述
白名單可根據生產需要配置,多個以逗號隔開
用java啓動兩個消費者和兩個生產者,發現可以拉拉取到對方集羣的消息
在這裏插入圖片描述

配置測試大功告成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章