Kafka總結

什麼是Kafka

由LinkedIn在11年開源,還有例如:分佈式數據同步系統Databus、高性能計算引擎Cubert、Java異步處理框架ParSeq。web

* streaming platform has three key capabilities:* Publish and subscribe to streams of records, similar to a message queue or enterprise messaging system.* Store streams of records in a fault-tolerant durable way.* Process streams of records as they occur.
在這裏插入圖片描述

Kafka基本概念

  • 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負責該Partition上與Producer和Consumer交互,Leader有且只有一個。
  • ReplicaManager:負責管理當前broker全部分區和副本的信息,處理KafkaController發起的一些請求,副本狀態的切換、添加/讀取消息等。

Kafka基本結構


在這裏插入圖片描述

Kafka消息結構

在這裏插入圖片描述

Kafka的特色

分佈式併發

  • 多分區
  • 多副本
  • 多訂閱者
  • 基於Zookeeper消息調度

高性能框架

  • 高吞吐量
  • 低延遲
  • 高併發
  • 時間複雜度爲O(1)

持久性與擴展性異步

  • 數據可持久化
  • 容錯性
  • 支持在線水平擴展
  • 消息自動平衡

Kafka應用場景

  • 消息隊列
  • 行爲跟蹤
  • 元信息監控
  • 日誌收集
  • 流處理
  • 事件源
  • 持久性日誌(commit log)

Kafka應用案例

Kafka代碼案例

Kafka高級特性之消息事務

Kafka高級特性之零拷貝

相關文章
相關標籤/搜索