Kafka 2.0課程 4 Kafka理論
Kafka Broker Discovery
- 每一個broker皆是bootstrap server
- 所以只需連接單一個broker,即連結整個broker cluster
- 每一個broker皆有串通所有的brokers,topics,partitions(metadata)
Zookeeper
- Zookeeper管理brokers(用list型式儲存)
- Zookeeper協助指派partition的Leader
- Zookeeper通知Kafka任何的異動(新topic,broker陣亡,broker恢復,刪除topic,etc…)
- Kafka一定要有Zookeeper才能運作(Zookeeper要先開機)
- Zookeeper要保持奇數(1,3,5…)的數量
- Zookeeper有leader(專門處理寫入),其餘(稱Follower)休息狀態的server則負責讀取
- Kafka v0.10版的Zookeeper不儲存consumer offset
Kafka Guarabtees
- 訊息是依據傳送的順序附加在topic-partition上
- Consumer依據儲存在topic-partition的順序讀取訊息
- 當有複製係數N,則producer與consumer可允許N-1的brokers掛掉
- 所以複製係數3是不錯的選擇:
允許一個broker進行維護
另一個broker非預期掛掉
- 對於一個沒有新partition的topic維持同樣數量的partition,相同的key值將指向同一個partition