这份599页的PDF,帮你彻底搞懂kafka核心原理(附P8面试题)

149 篇文章 1 订阅

有人调侃我们说:

  • 程序员不如送外卖。送外卖是搬运食物,自己是搬运代码,都不产出新的东西……
  • 透支体力,又消耗健康,可替代性极强,30岁之后就要面临被优化的危险……
  • 想跳槽,但是更高的平台难进,同级别的平台又是重复……
  • 想利用业余时间学习提升,但是自己能力有限,很难形成知识体系…

这些其实都是初级程序员面临的困境,当你提高自身能力,登上更高的层级之后,无论薪资还是发展都会有很大的提升。

那么问题来了,怎么才能度过初级程序员的瓶颈,进阶成为高薪工程师呢?

Kafka 至今仍是当今大数据技术中当之无愧的王者,由于高吞吐量、可持久化、分布式、支持流数据处理等特性而被广泛应用。 这几年,大数据技术发展迅猛,其中 Kakfa 凭借高可靠、高吞吐、高可用、可伸缩几大特性,成为数据管道技术的首选。越来越多人开始使用 Kafka,对学习源码的需求也愈发强烈,原因主要有以下几个方面:

  1. 了解 Kafka 底层原理,从而搞懂 Kafka 高性能的实现机制;
  2. 快速分析定位线上问题,有针对性地制定调优方案,提升编码功力;
  3. Kafka 的很多优秀设计理念和特性,在官方文档中并未得到充分阐述;
  4. 很多互联网公司在招聘资深技术岗时,都要求“至少读过一种开源框架的源码”;
  5. 加入 Kafka 开源社区,成为一名代码贡献者——一旦你的代码被社区采纳,全世界 Kafka 使用者都会用你写的代码。

然而,大部分人在阅读源码时,还是会遇到很多问题,比如:源码这么多,不知道该重点掌握哪些内容;读源码时缺乏科学的方法,无数次从入门到放弃;知识不够体系化,遇到底层原理等常见面试题,很难有良好表现等等。因此很多次都掉坑里,那么如何避坑呢?

小编刚好整理了一份kafka笔记里都有详细讲到**,**已打包好,文末有免费获取方式。

脑图

整体的可能看不清楚,后面会分模块展示给大家看

目录:

Kafka入门

  • 什么是Kafka
  • Kafka中的基本概念

为什么选择Kafka

  • 优点
  • 常见场景

Kafka的安装、管理和配置

  • 安装
  • Broker配置
  • 硬件配置对Kafka性能的影响

Kafka的集群

  • 为何需要Kafka集群
  • 如何估算Kafka集群中Broker的数量
  • Broker如何加入Kafka集群

第一个Kafka程序

  • 创建我们的主题
  • 生产者发送消息
  • 消费者接受消息
  • 演示示例

Kafka的生产者

  • 生产者发送消息的基本流程
  • 使用Kafka生产者
  • 序列化
  • 分区

Kafka的消费者

  • 消费者的入门
  • 消费者中的基础概念
  • 消费者中的核心概念
  • Kafka中的消费安全
  • 消费者提交偏移量导致的问题
  • 分区再均衡
  • 优雅退出
  • 反序列化
  • 独立消费者

深入理解Kafka

  • 集群的成员关系
  • 什么是控制器
  • 复制-Kafka的核心
  • 处理请求的内部机制
  • 物理存储机制

可靠的数据传递

  • KafRka提供的可靠性保证和架构上的权衡
  • 复制
  • Broker配置对可靠性的影响
  • 可靠系统里的生产者
  • 可靠系统里的消费者

Spring和Kafka的整合

  • 与Spring/Spring Boot 集成

Kafka实战之削峰填谷

数据管道和流式处理(了解即可)

  • 数据管道基本概念
  • 流式处理基本概念

Kafka面试问题解析(基础+进阶+高阶)

Kafka基础篇

  • Kafka的用途有哪些?使用场景如何?
  • Kafka中的ISR、AR又代表什么? ISR的伸缩又指什么
  • Kafka中的HW. LEO、 LSO、 LW等分别代表什么?
  • Kafka中是怎么体现消息顺序性的?
  • Kafka中的分区器、 序列化器、拦截器是否了解?它们之间的处理顺序是什么?
  • Kafka生产者客户端的整体结构是什么样子的?
  • Kafka生产者客户端中使用了几个线程来处理?分别是什么?
  • Kafka的旧版Scala的消费 者客户端的设计有什么缺陷?
  • 消费组中的消费者个数如果超过topic的分区,那么就会有消费者消费不到数据"这句话是否正确?如消费者提交消费位移时提交的是当前消费到的最新消息的offset还是offset+1?
  • 有哪些情形会造成重复消费?哪些情景下会造成消息漏消费?
  • KafkaConsumer是非线程安全的, 那么怎么样实现多线程消费?
  • 简述消费者与消费者之间的关系
  • 当你使用kafka-topics.sh创建 (删除)了一个topic之后, Kafka背后会执行什么?
  • topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?
  • opic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?
  • 创建topic时如何选择合适的分区数?

Kakfa进阶篇

  • Kafka目前有哪些内部topic,它们都有什么特征?各自的作用又是什么?
  • 优先副本是什么?它有什么特殊的作用?
  • Kafka有哪几处地方有分区分配的概念?简述大致的过程及原理
  • 简述Kafka的日志目录结构
  • Kafka中有哪些索引文件?
  • 如果我指定了一个offset,Kafka怎么查找到对应的消息?
  • 如果我指定了一个timestamp,Kafka怎么查找到对应的消息?
  • 聊一聊你对Kafka的Log Retention的理解
  • 聊一聊你对Kafka的Log Compaction的理解
  • 聊一聊你对Kafka底层存储的理解
  • 聊一聊Kafka的延时操作的原理
  • 聊一聊Kafka控制器的作用
  • Kafka的旧版Scala的消费者客户端的设计有什么缺陷?
  • 消费再均衡的原理是什么?(提示:消费者协调器和消费者协调器)
  • Kafka中的幂等是怎么实现的?

Kafka高级篇

  • Kafka中的事务是怎么实现的?
  • 失效副本是指什么?有哪些应对措施?
  • 多副本下,各个副本中的HW和LEO的演变过程
  • Kafka在可靠性方面做了哪些改进?(HW, LeaderEpoch)
  • 为什么Kafka不支持读写分离?
  • Kafka中的延迟队列怎么实现
  • Kafka中怎么实现死信队列和重试队列?
  • Kafka中怎么做消息审计?
  • Kafka中怎么做消息轨迹?
  • 怎么计算Lag? (注意read. uncommitted和read. committed状态下的不
  • Kafka有哪些指标需要着重关注?
  • Kafka的哪些设计让它有如此高的性能?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值