kafka2 簡單介紹

kafka是JMS的一種實現html

JMS(java message service):middle ware,中間件技術。
Queue:隊列模式,P2P,點對點。
publish-subscribe:主題模式,發佈訂閱模式。java

消息中間件具體瞭解點這裏緩存

kafka--分佈式流計算平臺網絡

相似於消息系統發佈訂閱數據流。
以分佈式、副本集羣方式存儲數據流。
實時處理數據流。app

構建實時數據流管道,水平可伸縮,容錯,速度快。負載均衡

kafka特色異步

1.巨量數據:TB級
2.高吞吐量:支持每秒百萬消息
3.分佈式:支持在多個server之間進行消息分區
4.多客戶端支持:和多語言進行協同。分佈式

kafka是消息系統,組件設計

zk //協同系統
broker //代理,即kafka server,並不維護哪一個消費者消費了消息
producter //生產者
consumer //消費者,維護了消費的消息狀態
consumer group //消費者組,每一個組中只有一個消費者能夠消費消息。
topic //主題3d

kafka的核心設計

1.消息緩存於FileSystem的存儲,數據被即刻寫入OS內核頁,並緩存以及清理磁盤(能夠配置)。
2.消息被消費後,kafka長時間駐留消息,若有必要,能夠實現重複消費。
3.對分組消息使用消息set,防止網絡過載。
4.不像大多數消息系統那樣,將消費消息的元數據保存在server,而是將其保存在消費者。這樣能夠解決一些問題,好比:鬆散消息致使出錯;相同消息的屢次分發。
5.消費者狀態默認存在zk中,也能夠存在其它的OLTP中。
6.kafka中的生產和消費是push-and-pull模式(推拉模式,生產者push消息到broker中,消費者從broker中pull消息出來)。
7.kafka沒有主從模式,全部broker地位相同,broker數據均在zk中維護,並在producter和consumer中共享。
8.kafka的LB(load balance,負載均衡)策略容許producer動態發現broker。
9.producer維護了broker的鏈接池,並可以經過zk的watcher call機制實時進行更新。
10.producer能夠選擇同步或異步的方式向broker發送消息。

消息壓縮

1.producer壓縮消息(GZIP + snappy),consumer解壓縮。
2.壓縮的消息沒有深度限制。
3.在message的header中有一個compression byte來區分消息是否被壓縮,這個壓縮字節的低2位表明壓縮類型,值爲0表示未壓縮。
4.消息壓縮機制對於使用kafka進行跨數據中心創建數據鏡像很是有用,壓縮格式能夠下降網絡帶寬,使一個active數據中心能向一個passive數據中心傳輸大量數據。

kafka鏡像

將源集羣的數據副本化到target kafka集羣

相關文章
相關標籤/搜索