1. 程式人生 > >Kafka學習——二、Kafka 基本概念——訊息、批次、主題、分割槽、borker、消費群組等

Kafka學習——二、Kafka 基本概念——訊息、批次、主題、分割槽、borker、消費群組等

Kafka 基本概念

訊息:類似於資料庫的記錄,由位元組陣列組成,訊息裡的資料沒有特別的格式或含義。訊息可以有一個可選的元資料(鍵),主要是當以一種可控的方式寫入不同的分割槽時,需要用到。

批次:用於提高效率,將訊息分批次寫入kafka,批次也就是一組訊息,但這些訊息屬於同一主題和分割槽。

模式和序列化: Avro(Avro 提供了緊湊的序列化格式,模式和訊息體是分開的)

主題:訊息通過主題進行分類,主題類似於資料庫的表,或檔案系統的資料夾。 主題可以被分為若干個分割槽,

分割槽:一個分割槽就是一個提交日誌,訊息以追加的方式寫入分割槽,然後以先入先出的順序讀取。 由於一個主題包含多個分割槽,因此無法在整個主題範圍內保證訊息的順序,但可以保證訊息在單個分割槽內的順序

。 kafka 也是通過分割槽來實現資料冗餘和伸縮性( 一個主題可以通過多個分割槽並分佈在不同伺服器上的方式,橫跨多個伺服器)。

生產者:建立訊息的生產者。通常一個訊息會分佈到一個特定的主題上,生產者在預設情況下,把訊息均衡地分佈到主題的所有分割槽,而不關心特定訊息會被寫到哪個分割槽的。但是可以通過訊息鍵和分割槽器來實現 —— 分割槽器為鍵生成一個雜湊值,並將其對映到指定的分割槽上,從而保證包含同一個鍵的訊息會被寫到同一個分割槽上(分割槽器可以自定義)。

消費者:讀取訊息。消費者訂閱一個或多個主題,並按照訊息生成的順序讀取它們。

偏移量:偏移量是一種元資料,它是一個不斷遞增的證書值,消費者通過檢查訊息的偏移量來區分已經讀取過的訊息。在給定的分割槽裡,每個訊息的偏移量都是唯一的。 消費者將內個分割槽最後讀取的訊息偏移量儲存在 Zookeeper 或 Kafka 上,如果消費者關閉或重啟,它的讀取狀態不會丟失。

消費群組: 消費者是消費群組的一部分,一個或多個消費者共同讀取一個主題,群組保證每個分割槽只能被一個消費者使用。

broker: 一個獨立的 Kafka 伺服器成為 broker,broker 接收來自生產者的訊息,為訊息設定偏移量,並提交訊息到磁碟儲存。 broker 為消費者提供服務,對讀取分割槽的請求做出響應,返回已經提交到磁碟上的訊息。一個分割槽可以分配給多個broker,但只從屬於一個 broker,這個 broker 是分割槽的首領

訊息保留: Kafka broker 預設的訊息保留策略是——要麼保留一段時間,要麼訊息達到一定大小的位元組數。 當達到這些值得上限時,就訊息就會過期並刪除。

broker 、主題、分割槽、消費群組和消費者的關係:
在這裡插入圖片描述