1. kafka基本概念
Producer
消息和數據生產者,向kafka的一個topic發佈消息的進程/代碼/服務
Consumer
消息和數據的消費者,訂閱數據(topic)並且處理其發佈的消息的進程/代碼/服務
Consumer Group
邏輯概念,對於同一個topic,會 廣播給不同的group,一個group中只有一個consumer可以消費該消息;
Broker
物理概念,kafka集羣中的每個kafka節點;
topic
邏輯概念,kafka消息的類別,對數據進行區分、隔離;
Partition
物理概念,kafka下數據存儲的基本單元。一個Topic的數據,會被分散儲存到多個partition是有序的;
Replication
同一個partition可能會有多個Replica,多個replica之間數據是一樣的;
replication leader
一個partition的多個replica上,需要一個Leader負責該partition上與producer和Consumer交互;
replicaManager
負責管理當前broker所有分區和副本的信息,處理kafkaController發起的一些請求,副本狀態的切換,添加/讀取消息等;
2. kafka基本概念延伸
Partition:
1、每個topic被切分爲多個partitions
2、消費者數目少於或等於partition的數目
3、Broker group中的每一個broker保存topic的一個或多個partitions
4、Consumer Group中的僅有的一個consumer讀取topic的一個或多個partitions,並且是唯一的consumer;
Replication:
1、當集羣中有broker掛掉的情況,系統可以主動的使用replicas提供服務;
2、系統默認設置每一個topic的replication係數爲1,可以在創建topic時單獨設置;
特點:
(1) Replication的基本單位是topic和partition;
(2) 所有的讀和寫都從leader進,followers只是做爲備份;
(3) follower必須能夠及時複製leader的數據
(4) 增加容錯性和可擴展性;
3.kafka的基本結構
包括四種:
Producer Api
Consumer Api
Streams Api
Connectors Api
kafka的特點
分佈式
多分區
多副本
多訂閱者
基於Zookeeper調度
高性能
高吞吐量
低延遲
高併發
時間複雜度爲O(1)
持久性與擴展性
數據可持久化
容錯性
支持在線水平擴展
消息自動平衡
kafka應用場景
消息隊列
行爲跟蹤
元信息監控
日誌收集
流處理
事件源
kafka簡單案列
下載與安裝
- zookeeper下載:https://zookeeper.apache.org/releases.html#download
- kafka下載: http://kafka.apache.org/downloads
- 安裝:解壓,配置環境變量