还在发愁kafka核心原理?这份近600页的kafka笔记真的帮了我大忙(附P8面试题)
Kafka 起初是由 linkedIn 公司 采用 Scala 语言开发的一个多分区、多副本且基于Zookeeper协调的分布式消息系统,现在属于 Apache顶级项目。 kafka 是一个分布式的基于 发布/订阅的 消息队列。主要应用于大数据实时处理领域。kafka 是一个分布式、支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的 基于发布订阅模式的消息引擎系
Kafka 起初是由 linkedIn 公司 采用 Scala 语言开发的一个多分区、多副本且基于Zookeeper协调的分布式消息系统,现在属于 Apache顶级项目。 kafka 是一个分布式的基于 发布/订阅的 消息队列。主要应用于大数据实时处理领域。kafka 是一个分布式、支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的 基于发布订阅模式的消息引擎系统。
kafka 受到广大公司应用的主要原因有三点:
消息系统:Kafka 和传统的消息系统都具备系统解耦、异步、缓存等功能外,还提供了消息 顺序性保障和 回溯消费功能。
存储系统:Kafka 把消息持久化到磁盘,相对内存存储,降低了数据丢失风险,可以把它作为长期数据存储系统使用。
流失处理平台:为流式处理框架提供了完整的流失处理类库。
Kafka 至今仍是当今大数据技术中当之无愧的王者,由于高吞吐量、可持久化、分布式、支持流数据处理等特性而被广泛应用。 这几年,大数据技术发展迅猛,其中 Kakfa 凭借高可靠、高吞吐、高可用、可伸缩几大特性,成为数据管道技术的首选。越来越多人开始使用 Kafka,对学习源码的需求也愈发强烈,原因主要有以下几个方面:
了解 Kafka 底层原理,从而搞懂 Kafka 高性能的实现机制;
快速分析定位线上问题,有针对性地制定调优方案,提升编码功力;
Kafka 的很多优秀设计理念和特性,在官方文档中并未得到充分阐述;
很多互联网公司在招聘资深技术岗时,都要求“至少读过一种开源框架的源码”;
加入 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)