一、kafka有三個特性
1、可以發布和訂閱資料的流,類似於乙個訊息佇列
2、資料流儲存的平台並具備錯誤容忍
3、當資料產生時就可以對訊息進行處理。
面向資料流的生產、轉換、儲存、消費的流資料
二、基本概念
producer:訊息和資料的生產者,向kafka的乙個topic發布訊息的程序/**/服務
consumer:訊息和資料的消費者,訂閱資料(topic)並且處理發布的訊息的程序/**/服務
consumer group:邏輯概念,對於同乙個topic,會廣播給不同的group,乙個group中,只有乙個consumer可以消費該訊息。
broker:物理概念,kafka集群中的每個kafka節點
topic:邏輯概念,kafka訊息的類別,對時局進行區分、隔離
partition:物理概念,kafka下資料儲存的基本單元。乙個topic資料,會被分散儲存到多個partition,每乙個partition是有序的
replication(副本、備份):同乙個partition可能會有多個replica,多個replica之間資料是一樣的
replication leader:乙個partition的多個replica上,需要乙個leader負責該patition上與producer和consumer互動
replicamanager:負責管理當前broker所有分割槽和副本的資訊,處理kafkacontroller發起的一些請求,副本狀態的切換、新增/讀取訊息等
三、kafka基本結構
四、kafka特點
1、分布式
(1)多分割槽(partition)
(2)多副本(replication)
(3)多訂閱者(topic)
(4)基於zookeeper調動
2、高效能
(1)高吞吐量
(2)低延遲
(3)高併發
(4)時間複雜度o(1)
3、永續性與擴充套件性
(1)資料可持久化
(2)容錯性
(4)訊息自動平衡
五、kafka應用場景
1、訊息佇列
2、行為跟蹤
3、元資料監控
4、日誌收集
5、流處理
6、事件源
7、永續性日誌(commit log)
六、kafka訊息事務
資料傳輸的事務定義
1、最多一次:訊息不會被重**送,最多被傳輸一次,但也有可能一次不傳輸。
2、最少一次:訊息不會被漏傳送,最少被傳輸一次,但也有可能被重複傳輸。
3、精確的一次:不會漏傳輸也不會重複傳輸,每個訊息都傳輸被一次而且僅僅被傳輸一次。
事務保證
1、內部重試問題:procedure冪等處理
2、多分割槽原子寫入
事務保證----避免殭屍例項
1、每個事務producer分配乙個transaction.id,在程序重新啟動時能夠識別相同的producer例項
2、kafka增加了乙個與transaction.id相關的epoch,儲存每個transactionl.id內部元資料。
3、一旦epoch被觸發,任何具有相同的transaction.id和更舊的epoch的producer被視為殭屍,kafka會拒絕來著這些procuder的後續事務性寫入。
七、零拷貝
檔案傳輸到網路的公共資料路徑
1、作業系統將資料從磁碟讀入到核心空間的頁快取。
2、應用程式將資料從核心空間讀入到使用者空間快取中。
3、應用程式將資料寫回到核心空間到socket快取中。
4、作業系統將資料從socket緩衝區複製到網絡卡緩衝區中,以便將資料經網路發出。
零拷貝過程
1、作業系統將資料從磁碟讀入到核心空間的頁快取。
2、將資料的位置和長度的資訊的描述符增加至核心空間(socket緩衝區)。
3、作業系統將資料從核心拷貝到網絡卡緩衝區中,以便將資料經網路發出。
Kafka流處理平台 筆記
producer 訊息和資料生產者,向kafka的乙個topic發布訊息的程序 服務 consumer 訊息和資料的消費者,訂閱資料 topic 並且處理其發布的訊息的程序 服務 consumer group 邏輯概念,對於同乙個topic,會 廣播給不同的group,乙個group中只有乙個con...
大規模實時流處理平台架構 zz
接下來我們分享這個流分發網路中涉及到的實時流處理平台的架構。這裡我們先簡單的來看下這個實時流處理平台包含哪些內容。這是我們 直播雲平台 的框架圖,我們今天分享的內容主要集中於 儲存與回訪 轉碼和內容處理 以及 內容識別 平台的架構,同時它還包含實時轉儲存的能力,也就是圖中間的綠色部分所表示的模組。從...
kafka的流計算框架
producer 傳送例如 aa zz consumer 收到zz 通過 切分得到後面的,如果沒有 就正常輸出public class logprocessor implements processor 具體業務邏輯 public void process byte key,byte value 輸...