Kafka 基本概念學習筆記
一. 什麽是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 基本概念學習筆記