Kafka學習(四):Kafka架構詳解

kafka架構介紹

在這裏插入圖片描述
1、生產者 API

  • 允許應用程序發佈記錄流至一個或者多個kafka的主題 topics(生產數據到topic)。

2、消費者 API

  • 允許應用程序訂閱一個或者多個主題,並處理這些主題接收到的記錄流(讀取數據,消費數目)。

3、StreamsAPI

  • 允許應用程序充當流處理器(stream processor),從一個或者多個主題獲取輸入流,並生產一個輸出流到一個或 者多個主題,能夠有效的變化輸入流爲輸出流。(把kafka 主題連接到現有的應用程序或數據系統)

4、ConnectAPI

  • 允許構建和運行可重用的生產者或者消費者,能夠把kafka主題連接到現有的應用程序或數據系統。例如:一個計算數字的原始數據隊列,經過不同的應用程序,生成最終的目標數據隊列(應用充當處理器)
  • 如何理解應用充當處理器?(如下圖)
    在這裏插入圖片描述

kafka架構內部細節剖析

在這裏插入圖片描述


在這裏插入圖片描述


說明

kafka支持消息持久化,消費端爲拉模型來拉取數據,消費狀態和訂閱關係有客戶端負責維護,消息消費完後,不會立即刪除,會保留歷史消息。因此支持多訂閱時,消息只會存儲一份就可以了。

kafka消息保留在磁盤上,並在集羣內複製以防止數據丟失(不能提高數據的讀取效率)。

Consumer Group:每一個Consumer屬於一個特定的Consumer Group(可以爲每個Consumer指定 groupName)

Broker:kafka集羣中包含一個或者多個服務實例

Topic:每條發佈到kafka集羣的消息都有一個類別,分類

Partition:Partition是一個物理上的概念,每個Topic包含一個或者多個Partition

segment:一個partition當中存在多個segment文件段,每個segment分爲兩部分,.log文件和.index文件,其中:

.index文件是索引文件,主要用於快速查詢.log文件當中數據的偏移量位置
.log存放數據文件

在這裏插入圖片描述


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章