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性能测试
|