kafka流處理平台

2021-08-30 06:38:47 字數 2593 閱讀 5778

一、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 輸...