關(guān)注公眾號(hào):“程序員成長(zhǎng)軟技能” ,日拱一卒,功不唐捐!
公司數(shù)據(jù)收集后會(huì)寫入kafka集群,近期涉及到機(jī)房搬遷,在完成機(jī)房搬遷移前,兩個(gè)機(jī)房都有業(yè)務(wù)需要某些topic的數(shù)據(jù),兩種處理方案:1是數(shù)據(jù)寫入時(shí)候雙寫 2是老機(jī)房數(shù)據(jù)寫入完成后再同步至新機(jī)房kafka集群。本文介紹kafka自帶的集群鏡像工具M(jìn)irrorMaker,實(shí)現(xiàn)kafka集群間的數(shù)據(jù)同步。
一、概括來說MirrorMaker就是kafka生產(chǎn)者與消費(fèi)者的一個(gè)整合,通過consumer從源Kafka集群消費(fèi)數(shù)據(jù),然后通過producer將數(shù)據(jù)重新推送到目標(biāo)Kafka集群,如下圖:

二、MirrorMaker的使用相對(duì)也比較簡(jiǎn)單,下面說下啟動(dòng)命令及相關(guān)配置
啟動(dòng)腳本在$KAFKA_HOME/bin目錄下,可通過命令kafka-run-class.sh kafka.tools.MirrorMaker查看相關(guān)說明:

說明:
whitelist、blacklist:該工具可以同步源集群所有的或者部分topic,可以用白名單描述要同步的topic,用黑名單描述不需要同步的topic,多個(gè)topic直接逗號(hào)分隔,并且支持通配符(java http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)
consumer.config:配置源kafka集群消費(fèi)者相關(guān)信息
[plain] view plain copy
zookeeper.connect=zk1ip1:2181,zk1ip2:2181/kafka/
group.id=mirrorMaker
producer.config :配置目標(biāo)kafka集群生產(chǎn)者相關(guān)信息
[plain] view plain copy
metadata.broker.list=b1:9092,b2:9092
compression.codec=none
啟動(dòng)命令:
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
關(guān)注公眾號(hào):“程序員成長(zhǎng)軟技能” ,日拱一卒,功不唐捐!