kafka 簡介

1.kafka 集群的架構

Kafka是最初由Linkedin公司開發,是一個分布式、支持分區的(partition)、多副本的(replica),基于zookeeper協調的分布式消息系統,它的最大的特性就是可以實時的處理大量數據以滿足各種需求場景:比如基于hadoop的批處理系統、低延遲的實時系統、storm/Spark流式處理引擎,web/nginx日志、訪問日志,消息服務等等,用scala語言編寫,Linkedin于2010年貢獻給了Apache基金會并成為頂級開源 項目。

image-20200129105443274

1.broker: 服務器集群的節點

2.topic : 專題

3.partition分區: 把一個 topic 分成不同的分區,提高負載,表現形式就是文件夾

1.leader:分區主節點(老大)

2.follower: 分區的從節點(小弟)

4.Consumer Group

2.生產者往 kafka發送數據的流程(6 步)

image-20200129105705147

1、producer 從 kafka 集群獲取信息,知道誰是 leader

2、procucer 向 leader 發送數據

3、leader 存儲數據

4、leader 往 follwer 發送數據

5、follwer 告訴 leader 自己存儲完畢

6、leader 告訴 producer 自己存儲完畢

3.kafka 選擇分區模式

1.指定往哪個分區寫

2.指定 key,kafka 根據 key 做 hash 然后決定寫哪個分區

3.輪詢方式

4.生產者往 kafka 發送數據模式(3 種)

1.0:把數據發給 leader 就成功,不等回復,效率最高,安全性最低

2.1:把數據發送給 leader,等待 leader 回復 ACK

3.all:把數據發送給 leader,確保 follower 從 leader 拉取到數據并回復 ACK 給 leader,leader 再回復 ACK;安全性最高

5.kafka為什么快

image-20200129112412411

每個 partition 都是一個有序并且不可變的消息記錄集合。當有新的數據寫入時,就被追加到 partition 的末尾。在每個 partition 中,每條消息都會被分配一個順序的 唯一標識,這個標識稱為 offset,即偏移量。注意,kafka 只保證在同一個partition 內部消息是有序的,在不同 partition 之間,并不保證消息有序。

6.消費者組消費數據

image-20200129113044659
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 原文:InfoQ 作者 郭俊 簡介 Kafka是一種分布式的,基于發布/訂閱的消息系統。使用Scala編寫...
    小小少年Boy閱讀 2,222評論 1 30
  • Design 1. Motivation 我們設計Kafka用來作為統一的平臺來處理大公司可能擁有的所有實時數據源...
    BlackManba_24閱讀 1,409評論 0 8
  • 英文原文 介紹 一個流處理平臺有三個關鍵功能: 發布訂閱記錄流,和消息隊列和企業消息系統一樣; 以容錯持久...
    Anor9閱讀 364評論 0 0
  • Kafka 是一個java開發的mq中間件,依賴于zookeper,有高可用,高吞吐量等特點。 優勢 可靠性:pa...
    何笙閱讀 14,931評論 1 9
  • 這位美女想必大家都是認識的,奧黛麗·赫本,一個時代的象征者,一種流行符號,一種標志,一種共識,一種美的代名詞。 是...
    苯二妹閱讀 1,015評論 0 9