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 針對當天課程的內容進行答疑