關注公眾號:“程序員成長軟技能” ,日拱一卒,功不唐捐!
公司數據收集后會寫入kafka集群,近期涉及到機房搬遷,在完成機房搬遷移前,兩個機房都有業務需要某些topic的數據,兩種處理方案:1是數據寫入時候雙寫 2是老機房數據寫入完成后再同步至新機房kafka集群。本文介紹kafka自帶的集群鏡像工具MirrorMaker,實現kafka集群間的數據同步。
一、概括來說MirrorMaker就是kafka生產者與消費者的一個整合,通過consumer從源Kafka集群消費數據,然后通過producer將數據重新推送到目標Kafka集群,如下圖:
二、MirrorMaker的使用相對也比較簡單,下面說下啟動命令及相關配置
啟動腳本在$KAFKA_HOME/bin目錄下,可通過命令kafka-run-class.sh kafka.tools.MirrorMaker查看相關說明:
說明:
whitelist、blacklist:該工具可以同步源集群所有的或者部分topic,可以用白名單描述要同步的topic,用黑名單描述不需要同步的topic,多個topic直接逗號分隔,并且支持通配符(java http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)
consumer.config:配置源kafka集群消費者相關信息
[plain] view plain copy
zookeeper.connect=zk1ip1:2181,zk1ip2:2181/kafka/
group.id=mirrorMaker
producer.config :配置目標kafka集群生產者相關信息
[plain] view plain copy
metadata.broker.list=b1:9092,b2:9092
compression.codec=none
啟動命令:
sh KAFKA_HOME/config/mirrorMakerConsumer.config --num.streams 2 --producer.config $KAFKA_HOME/config/amirrorMakerProducer.config —num.producers 2 --whitelist="topic2mirror"
參考:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27846330
https://kafka.apache.org/documentation.html#basic_ops_mirror_maker
關注公眾號:“程序員成長軟技能” ,日拱一卒,功不唐捐!