不愧是阿里内部供应的Kafka笔记,深入浅出,全是干货

前言

分布式,是程序员必备技能之一,在面试过程中属于必备类的,在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列,目前它的魅力是无穷的,对于Kafka的奥秘,还需要我们细细去探寻。

要谈对Kafka有多熟悉,我相信还是阿里的大佬们最有发言权,所以今天分享的内容,就是Alibaba内部供应的“限量笔记”,关于Kafka的精髓全部写在这里面了,不得不感叹:不愧是Alibaba的技术官啊,真的服了!

关于这份Kafka限量笔记,我只能在文章中展示部分的章节内容和核心截图,如果你需要完整的pdf版本,可以【直接点击此处】领取哦。

一、对Kafka的认识

1.Kafka的基本概念

2.安装与配置

3.生产与消费

4.服务端参数配置

二、生产者

1.客户端开发

  • 必要的参数配置
  • 消息的发送
  • 序列化
  • 分区器
  • 生产者拦截器

2.原理分析

  • 整体架构
  • 元数据的更新

3.重要的生产者参数

三、消费者

1.消费者与消费组

2.客户端开发

  • 必要的参数配置
  • 订阅主题与分区
  • 反序列化
  • 消息消费
  • 位移提交
  • 控制或关闭消费
  • 指定位移消费
  • 再均衡
  • 消费者拦截器
  • 多线程实现
  • 重要的消费者参数

四、主题与分区

1.主题的管理

  • 创建主题
  • 分区副本的分配
  • 查看主题
  • 修改主题
  • 配置管理
  • 主题端参数
  • 删除主题

2.初识KafkaAdminCilent

  • 基本使用
  • 主题合法性验证

3.分区的管理

  • 优先副本的选举
  • 分区重分配
  • 复制限流
  • 修改副本因子

4.如何选择合适的分区数

  • 性能测试工具
  • 分区数越多吞吐量就越高吗
  • 分区数的上限
  • 考量因素

五、日志存储

1.文件目录布局

2.日志格式的演变

  • v0版本
  • v1版本
  • 消息压缩
  • 变长字段
  • v2版本

3.日志索引

  • 偏移量索引
  • 时间戳索引

4.日志清理

  • 日志删除
  • 日志压缩

5.磁盘存储

  • 页缓存
  • 磁盘I/O流程
  • 零拷贝

六、深入服务端

1.协议设计

2.时间轮

3.延时操作

4.控制器

5.参数解密

七、深入客户端

1.分区分配策略

2.消费者协调器和组协调器

3._consumer_offsets剖析

4.事务

八、可靠性探究

1.副本剖析

2.日志同步机制

3.可靠性分析

[图片上传失败...(image-3b0595-1672367716850)]

九、Kafka应用

1.命令行工具

2.Kafka Connect

3.Kafka Mirror Maker

4.Kafka Streams

十、Kafka监控

1.监控数据的来源

2.消费滞后

3.同步失效分区

4.监控指标说明

5.监控模块

十一、高级应用

1.过期时间(TTL)

2.延时队列

3.死信队列和重试队列

4.消息路由

5.消息轨迹

6.消息审计

7.消息代理

8.消息中间件选型

十二、Kafka与Spark的集成

1.Spark的安装及简单应用

2.Spark编程模型

3.Spark的运行结构

4.Spark Streaming简介

5.Kafka与Spark Streaming的整合

6.Spark SQL

7.Structured Streaming

8.Kafka与Structured Streaming的整合

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的,在我看来,自己付出多少,回报就有多少。

Kafka的学习,并没有想象中那么难,这份Kafka限量笔记里面的内容,对你学习Kafka必有启发和帮助。如果你需要这份完整版的Kafka笔记,只需你多多支持我这篇文章。

149 声望
39 粉丝
0 条评论
推荐阅读
分库分表的 21 条法则,hold 住!
不着急实战,咱们先介绍下在分库分表架构实施过程中,会接触到的一些通用概念,了解这些概念能够帮助理解市面上其他的分库分表工具,尽管它们的实现方法可能存在差异,但整体思路基本一致。因此,在开始实际操作...

Java架构师阅读 150

Java8的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft32阅读 27.4k评论 1

一文彻底搞懂加密、数字签名和数字证书!
微信搜索🔍「编程指北」,关注这个写干货的程序员,回复「资源」,即可获取后台开发学习路线和书籍来源:个人CS学习网站:[链接]前言这本是 2020 年一个平平无奇的周末,小北在家里刷着 B 站,看着喜欢的 up 主视...

编程指北71阅读 33.4k评论 20

Java11的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft28阅读 19.2k评论 3

Java5的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft13阅读 21.7k

Java9的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft20阅读 15.3k

学会这些 Web API 使你的开发效率翻倍
随着浏览器的日益壮大,浏览器自带的功能也随着增多,在 Web 开发过程中,我们经常会使用一些 Web API 增加我们的开发效率。本篇文章主要选取了一些有趣且有用的 Web API 进行介绍,并且 API 可以在线运行预览。C...

九旬13阅读 1.5k

封面图
149 声望
39 粉丝
宣传栏