? ? ? ?美團每天產(chǎn)生幾億條消息,這些消息是如何處理的?kakfa又有什么魔力協(xié)助美團完成這么大數(shù)據(jù)量的運轉(zhuǎn)?
? ? ? ? 據(jù)說去美團面試必定會被問到kafka的問題,有一道題是:kafka的存儲機制是怎樣的?
? ? ? ?一、 kafka介紹:kafka 是分布式的、基于發(fā)布/訂閱的消息機制。
? ? ? ? 特點:1、磁盤持久化
? ? ? ? ? ? ? ? ? ?2、順序?qū)懭耄冗M先出
? ? ? ? ? ? ? ? ? ?3、支持流計算
? ? ?結(jié)構(gòu):kafka的數(shù)據(jù)單元由字節(jié)數(shù)組組成。消息由key+value構(gòu)成,key可為空。如下圖所示:
? ? 消息模式: 數(shù)據(jù)格式j(luò)son ,XML等

二、kafka的消息存儲
? ? 1、 kafka的消息存儲的劃分: 1)主題; 2)分區(qū)

? ? ? 比如主題:消息可以根據(jù)美團電影票,外賣,團購,打車等主題進行分類分區(qū);
? ? ? 比如主題外賣:可以分為北京,深圳,上海,三個分區(qū)?
? ? ? 然后每個分區(qū)可以放在不同服務(wù)器,所以吞吐量可以非常高,堆服務(wù)器輕輕松松到100萬。
2、kafka的消息以Broker存儲。
? ? ?1)一個獨立的kafka服務(wù)器被稱為broker
? ? ?2)多個broker組成一個集群
? ? 3)多個broker,有一個當(dāng)首領(lǐng)
? ?4)副本機制
? ? 以下為一張kafka的經(jīng)典集群圖,來源網(wǎng)絡(luò)。

? ? ?三、kafka 與其它消息中間件比較

????????流計算的理解:
????????比如:今年的天貓兩小時定量單突破千萬,應(yīng)該是給予消息系統(tǒng)的實時統(tǒng)計,不可能從數(shù)據(jù)庫層面統(tǒng)計。
????????kafka的流計算:

????????四、安裝,配置
? ? ????????? 略
????????五、使用
? ? ? ? pom文件引用:

配置項:

生產(chǎn)者發(fā)送消息:

????消費者
