Course Code: kafkali
Duration: 14 hours
Course Outline:

时间安排

Day 1 -Kafka基础理论(1小时),专题理论+案例(5小时),答疑- 1小时   

Day 2 -专题理论+案例(4小时), 专项实现原理+演示(1.5小时),答疑- 1.5小时  

学时

共7小时

讲师开场与自我介绍:10min

第一天上午  3课时

1.Kafka基础理论-概念、架构、事务、Exactly-Once  (1小时)

   1.1 kafka基础概念介绍:

         定义:消息系统、消息引擎、分布式消息中间件、流处理平台

         价值:消息处理缓冲、流量削峰填谷、异构系统解耦、消息流式计算

   1.2 kafka架构设计:

         目标:高吞吐量、高可扩展性、高可用、持久化、流计算引擎  

         设计:生产者-Broker Server-消费者、Topic & Partition & Message

         模型:点对点消息队列queue、发布/订阅pub/sub

   1.3 主流消息引擎对比分析:Kafka VS ActiveMQ VS RabbitMQ VS Pulsar

   1.4 消息事务特性:  分布式事务XA与TCC、数据库事务与消息事务、幂等性与事务

   1.5 消息传输保障:at most once、at least once、exactly once

   1.6 分布式基础理论:ACID、BASE、CAP(结合案例进行讲解)

   1.7 分布式选举与共识算法: Bully、Raft、Paxos(结合案例进行讲解)

   1.8 基础实践:Kafka集群部署与客户端编程(熟悉生产者API与消费者API操作)

2.Kafka Rebalance management 专题理论+案例  (2小时)

   2.1 理论:消费者组与消费组实例Consumer Group&Consumer Instance

   2.2 理论:Rebalance触发条件:组成员数量、订阅主题数量、订阅主题分区数变更

   2.3 理论:Rebalance核心原理剖析与减少Rebalance的方法

   2.4 案例:本地源码阅读环境搭建

   2.5 案例:Rebalance关键源码解析:GroupMetadata、MemberMetadata、

                   __consumer_offsets、GroupMetadataManager、GroupCoordinator

第一天 下午 4课时

3.Kafka message consumption stuck issue resolution专题理论+案例 (2小时)

   3.1 消费位移提交Committing Offsets:

         位移主题、重设消费者组位移、丢失处理消息、重复处理消息

   3.2 多线程消费实现:KafkaConsumer单线程设计问题、多线程消费方案对比

   3.3 消费卡慢相关背景知识:

         消费进度监控:kafka-consumer-groups 脚本、Consumer API 编程、JMX

         操作系统调优:时间同步、句柄数、文件数、线程数、网络、磁盘、其他OS调优

         Kafka框架调优:Kafka集群核心参数配置调优、Broker Java进程JVM调优

         应用层配置调优:Kafka生产者与消费者客户端配置调优

   3.4 消费卡慢案例分析:生产环境消费典型卡慢问题诊断与解决方案

4.Kafka Streams 专题理论+案例  (1小时)

   4.1 流计算引擎对比:Kafka Streams VS Storm VS Spark VS Flink

   4.2 Kafka Streams开发方法(上):低级Processor API

                                    Stream、Stream Processing Application、Processor Topology

   4.3 Kafka Streams应用案例(上):日志流处理应用案例

5.答疑   (1小时)

   5.1 针对课前练习题问题进行答疑 (Kafka集群安装部署与客户端编程实践任务)

   5.2 针对当天课程的内容进行答疑

前1天课程内容回顾:10min

第二天上午 3课时

1.Kafka Streams 专题理论+案例  (2小时)

   1.1 Kafka Streams开发方法(下):高级流式DSL

                                    KStream&KTable、Join连接操作、Aggregations聚合操作、窗口操作

   1.2 Kafka Streams应用案例(下):移动推送平台项目案例

2. 2. Kafka operation best practices(包括health check/monitor) 专题理论+案例 (1小时)

   2.1 企业级Kafka运维实践:巡检、监控、参数调优、排障知识体系(赠送400页内部资料)

   2.2 主流监控工具:JMXTool VS Kafka Manager VS KafkaOffsetMonitor VS Burrow

   2.3 领域最佳实践:JMXTrans + InfluxDB (OpenTSDB) + Grafana (Davinci)

   2.4 商业监控产品:Confluent Control Center

第三天下午 4课时

3.Kafka operation best practices(包括health check/monitor) 专题理论+案例 (1小时)

   3.1 案例精讲:运营商信令Kafka集群故障分析专题

                 集群背景介绍、故障现象复盘、临时处理办法、总体解决方案

   3.2 案例精讲:运营商信令Kafka集群故障知识总结

                 集群启动流程、Kafka副本机制剖析、Kafka控制器组件原理、日志模块原理

4.Kafka burrow (实现原理+简单演示)  (0.5小时)

5.Kafka Mirror Maker introduction (实现原理+简单演示)  (0.5小时)

6.KSQL development (实现原理+简单演示)   (0.5小时)

7.答疑   (1.5小时)

   7.1 针对课前练习题问题进行答疑(Kafka集群系统配置调优实践任务)

   7.2 针对当天课程的内容进行答疑