Kafka是流式處理系統如Spark streaming,Strom及Flink事實上的標準數據入口。本課程將分析Kafka的架構,Topic與Partition的關系,Kafka如何使用Consumer group實現group內的消息單播和group間的消息廣播,Kafka如何利用Partition實現水平擴展以及Kafka如何實現高吞吐率。并結合源碼分析Kafka實現數據復制,Leader election及Consumer rebalance的原理。同時介紹實用的Kafka監控工具kafka manager。并結合實例介紹Kafka如何與其它流行的開源系統(如Flume,Storm,Spark streaming)集成。
第一部份. Kafka簡介
1.1 為什么需要消息系統
1.2 Kafka設計目標
1.3 如何安裝和使用Kafka集群
第二部份. Kafka架構
2.1 Kafka整體架構
2.2 Topic & Partition
2.3 Partitioner
2.4 Sync Producer vs. Async Producer
2.5 Producer重試機制
第三部份. Kafka HA
3.1 Kafka一致性重要機制之ISR
3.2 Kafka數據復制機制
3.3 Fail over
第四部份. Zookeeper與Kafka
4.1 Zookeeper典型用法
4.2 Zookeeper使用注意事項
4.3 Kafka如何使用Zookeeper
第五部份. Kafka領導選舉
5.1 領導選舉算法
5.2 Kafka“各自為政”領導選舉算法
5.3 Kafka基于Controller的領導選舉
第六部份. Consumer
6.1 Pull vs Push
6.2 Low level API vs. High level API
6.3 單播 vs. 多播
6.4 Consumer rebalance
第七部份. Consumer offset管理
7.1 基于Zookeeper的offset管理
7.2 基于broker的offset管理
第八部份. Consumer的stream接口
8.1 Blocking接口
8.2 Stream接口
第九部份. Kafka高性能之道
9.1 順序寫磁盤
9.2 零拷貝
9.3 批處理
9.4 基于ISR的動態平衡一致性算法
第十部份. kafka監控工具
9.1 Zookeeper viewer
9.2 Kafka manager
第十一部份. Kafka運維
第十二部份. Kafka性能測試
|