Kafka消息队列详解
John Zhao 查看讲师
百林哲咨询(北京)有限公司专家团队成员
Oracle中国有限公司高级技术顾问,华为认证讲师。
浏览:426次
详情 DETAILS


课程简介

Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能;拥有高吞吐率,即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。

本次课程将深入分析Kafka的关键技术与特性,同时结合业务场景来帮助学员掌握Kafka的体系架构,熟悉大数据流处理与批处理的基本概念,掌握Kafka消息系统开发和部署的能力。

课程收益

1、帮助学员了解消息系统的基本概念及Kafka的架构

2、掌握基于Kafka消息系统的管理、部署;

3、帮助学员掌握部署基于Kafka的企业大数据平台环境的能力

受众人群

大数据的研发人员,大数据构师,大数据运维人员

课程周期

  3天(18H) 

课程大纲

标题

授课内容

一、Kafka核心概念与体系架构

1. 什么是消息系统

2. 消息系统的分类

(1) 同步消息机制与异步消息机制

(2) 队列与主题

3. Kafka的体系架构

(1) 消息服务器Broker

(2) 主题、分区与副本

(3) 生产者

(4) 消费者与消费者组

4. 分布式协调服务ZooKeeper

(1) ZooKeeper集群的架构

(2) ZooKeeper的节点类型

(3) ZooKeeper的Watcher机制

(4) ZooKeeper的分布式锁

(5) ZooKeeper在Kafka中的作用

二、Kafka的安装部署

1. 部署ZooKeeper

(1) ZooKeeper的核心配置文件

(2) 部署ZooKeeper的Standalone模式

(3) 部署ZooKeeper的集群模式

(4) 测试ZooKeeper集群

2. 安装部署Kfaka

(1) 单机单Broker的部署

(2) 单机多Broker的部署

(3) 多机多Broker的部署

(4) 使用命令行测试Kafka

3. Kafka配置参数详解

三、开发Kafka的应用程序

1. 开发Kafka的Java版本程序

(1) Producer端的实现

(2) Consumer端的实现

(3) 程序执行演示

2. 开发Kafka的Scala版本

(1) Scala的Producer的实现

(2) Scala的Consumer的实现

3. 发送自定义消息

四、监控Kafka的运行

 

1. Kafka的监控指标

(1) Broker度量指标

(2) 生产者度量指标

(3) 消费者度量指标

2. 使用Kafka客户端监控工具

(1) Kafka Manager

(2) Kafka Tool

(3) KafkaOffsetMonitor

(4) JConsole

3. 监控ZooKeeper

五、Kafka的生产者

 

1. Kafka生产者的执行过程

2. 创建Kafka生产者

(1) 创建基本的消息生产者

(2) 发送自定义消息对象

3. 生产者的消息发送模式

4. 生产者的高级特性

(1) 生产者分区机制

(2) 生产者压缩机制

(3) 生产者拦截器

5. 生产者的参数配置

六、Kafka的消费者

 

1. Kafka消费者的消费模式

(1) 消息的推送模式

(2) 消息的拉取模式

(3) 推送模式与拉取模式的区别

(4) 消息者组

2. 创建Kafka的消费者

(1) 创建基本的消息者

(2) 接收自定义消息对象

3. 消费者组与消费者

(1) 消费者和消费组与分区的关系

(2) 分区的重平衡

4. 消费者的偏移量与提交

(1) 偏移量与重平衡

(2) 偏移量的提交方式

5. 消费者的高级特性

(1) 消费者的分区策略

(2) 重平衡监听器

(3) 消费者的拦截器

(4) 消费者的优雅退出

6. 消费者的参数配置

七、Kafka的服务器端

 

1. 主题与分区

(1) 主题和分区

(2) 主题的管理

(3) 使用KafkaAdminClient

2. 消息的持久性

(1) Kafka消息持久性概述

(2) Kafka的持久化原理解析

(3) 持久化的读写流程

(4) 为什么要建立分段和索引?

3. 消息的传输保障

(1) 生产者的ack机制

(2) 消费者与高水位线

4. 副本和Leader的选举

5. Kafka配额的管理

6. Kafka的日志清理与压缩

(1) 日志的删除

(2) 日志的压缩

(3) 清理的实现细节

7. Kafka与ZooKeeper

(1) ZooKeeper扮演的角色

(2) Kafka在ZooKeeper中存储的数据

8. 服务器端参数设置

八、Kafka Stream

 

1. KafkaStream的体系架构

(1) 为什么需要Kafka Stream

(2) Kafka Stream的体系架构

(3) 执行Kafka Stream示例程序

2. 开发自己的Kafka Stream应用程序

3. Kafka Stream中的数据模型

(1) KStream与KTable

(2) 状态管理State Store

4. Kafka Stream中的窗口计算

(1) 时间

(2) 窗口

5. Kafka Stream应用案例

九、Kafka与Flink集成

 

1. Flink的体系架构

(1) Flink中的数据集

(2) Flink的生态圈体系

(3) Flink的体系架构

2. 集成Flink与Kafka

(1) 将Kafka作为Flink的Source Connector

(2) 将Kafka作为Flink的Sink Connector

十、Kafka与Storm集成

 

1. 离线计算与流式计算

2. Apache Storm的体系架构

3. 开发自己的Storm任务

4. 集成Kafka与Storm

(1) Storm从Kafka中接收数据

(2) 测试Kafka与Storm的集成

(3) Storm将数据输出到Kafka

十一、Kafka与Spark集成

 

1. Spark基础

(1) Spark的特点

(2) Spark的体系架构

2. 执行Spark任务

(1) 使用spark-submit提交任务

(2) 交互式命令行工具spark-shell

3. 开发自己的Spark Streaming程序

4. 集成Kafka与Spark Streaming

(1) 基于Receiver的方式

(2) 直接读取的方式

十二、Kafka与Flume集成

 

1. Apache Flume基础

(1) Apache Flume的体系架构

(2) Apache Flume的安装和部署

2. Flume的Source组件

3. Flume的Channel组件

4. Flume的Sink组件

5. 集成Kafka与Flume


企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1