1. 程式人生 > >Kafka 基本概念學習筆記

Kafka 基本概念學習筆記

com part 直接 image 和數 9.png 水平 添加 consumer

一. 什麽是Kafka

面向數據流的生產,轉換,存儲,消費的整體流處理平臺

二、Kafka三大特性

1、發布和訂閱數據的流,類似於消息隊列,消息系統

2.、數據流存儲平臺

3、當數據產生的時候,對數據處理

三、Kafka應用於

1. 構建數據流管道,應用直接有比較強的應用關系

2、構建實時數據處理應用,能夠轉換或者響應數據流

四 Kafka基本概念

Producer:消息和數據的生產者,向Kafka的一個topic發布消息的進程/代碼/服務

Consumer: 消息和數據的消費者,訂閱數據(Topic)並且處理發布的消息的進程/代碼/服務

Consumer Group:邏輯概念,對於同一個topic,會廣播給不同的group,一個group中,只有一個consumer可以消費該消息。

Broker:物理概念,Kafka集群中的每個Kafka節點

Topic:邏輯概念,Kafka消息的類別,對數據進行區分、隔離

Partition:物理概念,Kafka下數據儲存的基本單元。一個Topic數據,會被分散存儲到多個Partition,每一個Partition是有序的。

  1)每一個Topic被切分為多個Partitions

  2)消費者數目少於或等於Partition的數目

  3)Broker Group中的每一個Broker保存Topic的一個或多個Partitions

  4)Consumer Group中的僅有一個Consumer讀取Topic的一個或者多個Partitions,並且是唯一的Consumer

Replication:同一個Partition可能會有多個Replica,多個Replica之間數據是一樣的

  1)當集群中的有Broker掛掉的情況,系統可以主動的使用Replicas提供服務

  2)系統默認設置每一個Topic的replication系數為1,可以在創建Topic時單獨設置

  Replication特點

  1)Replication的基本單位是Topic的Partition

  2)所有的讀和寫多從Leader進,Followers只是做為備份

  3)Follower必須能夠及時復制Leader的數據

  4) 增加容錯性與可擴展性

Replication Leader:一個Partition的多個Replica上,需要一個Leader負責該Partition上與Producer和Consumer交互

ReplicaManager:負責管理當前broker所有分區和副本的信息,處理KafkaController發起的一些請求,副本狀態的切換、添加/讀取消息等。

五、Kafka基本結構

Producer Api

Consumer Api

Streams Api

Connectors Api

技術分享圖片

技術分享圖片

六、Kafka消息結構

技術分享圖片

七、Kafak特點

分布式

  多分區

  多副本

   多訂閱者

   基於Zookeeper調度

高性能

  高吞吐量

  低延遲

  高並發

  時間復雜度為O(1)

持久性和可擴展性

  數據可持久化

  容錯性

  支持在線水平擴展

  消息自動平衡

Kafka 基本概念學習筆記