导言
我们知道,当下流行的MQ非常多,不过很多公司在技术选型上还是选择使用Kafka。与其他主流MQ进行对比,我们会发现Kafka最大的优点就是吞吐量高。实际上Kafka是高吞吐低延迟的高并发、高性能的消息中间件,配置良好的Kafka集群甚至可以做到每秒几十万、上百万的超高并发写入。
除此之外,在热招的Java架构师岗位面试中,Kafka相关的面试题被面试官问到的几率也是非常大的,所以拥有一定年限的开发者,搞懂Kafka是很有必要的。
那么怎么才能有效且快速学习Kafka呢?
由于平台文章篇幅限制,细节内容过多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!需要的朋友可在文章末尾获取资料
![13a4a2e06226a068e49b6d0bbb580222.jpeg](https://img-blog.csdnimg.cn/img_convert/13a4a2e06226a068e49b6d0bbb580222.jpeg)
一、初识Kafka(Kafka入门)
①Kafka基本概念
![d694a19360e6a14b0c14b94aa775a961.jpeg](https://img-blog.csdnimg.cn/img_convert/d694a19360e6a14b0c14b94aa775a961.jpeg)
②安装与配置
![cc44c9b249c969a0a75089369f928fee.jpeg](https://img-blog.csdnimg.cn/img_convert/cc44c9b249c969a0a75089369f928fee.jpeg)
③生产与消费
![8f13233568989a00d4c248c72cf95153.jpeg](https://img-blog.csdnimg.cn/img_convert/8f13233568989a00d4c248c72cf95153.jpeg)
④服务端参数配置
![12dd88fead22241406617cc98b081591.jpeg](https://img-blog.csdnimg.cn/img_convert/12dd88fead22241406617cc98b081591.jpeg)
二、生产者
①客户端开发(必要的参数配置+消息的发送+序列化+分区器+生产者拦截器)
![46475e8e7f5da0f79c1f9e02a4a8580f.jpeg](https://img-blog.csdnimg.cn/img_convert/46475e8e7f5da0f79c1f9e02a4a8580f.jpeg)
②原理分析(整体架构+元数据的更新)
![643bf72697fb0ec4f95e89606d8450a1.jpeg](https://img-blog.csdnimg.cn/img_convert/643bf72697fb0ec4f95e89606d8450a1.jpeg)
③重要的生产者参数
![b2440c98752ed950748edd369c1e12c6.jpeg](https://img-blog.csdnimg.cn/img_convert/b2440c98752ed950748edd369c1e12c6.jpeg)
三、消费者
①消费者与消费组
![c117938b73a232e60041db532aa62490.jpeg](https://img-blog.csdnimg.cn/img_convert/c117938b73a232e60041db532aa62490.jpeg)
②客户端开发(必要的参数配置+订阅主题与分区+反序列化+消息消费+位移提交+控制或关闭消费+指定位移消费+再均衡+消费者拦截器+多线程实现+重要的消费者参数)
![70672d919191f775dcc8cd0b31adccd2.jpeg](https://img-blog.csdnimg.cn/img_convert/70672d919191f775dcc8cd0b31adccd2.jpeg)
四、主题与分区
①主题的管理(创建主题+分区副本的分配+查看主题+修改主题+配置管理+主题端参数+删除主题)
![68486c1c83102859a3d7f24b85de0a54.jpeg](https://img-blog.csdnimg.cn/img_convert/68486c1c83102859a3d7f24b85de0a54.jpeg)
②初始Kafka AdminClient(基本使用+主题合法性验证)
![6ad1b13e0ce0d61d49c651e7e5233bf8.jpeg](https://img-blog.csdnimg.cn/img_convert/6ad1b13e0ce0d61d49c651e7e5233bf8.jpeg)
③分区的管理(优先副本的选举+分区重分配+复制限流+修改副本因子)
![41665cf21f450172ac89a7ff93e7bf39.jpeg](https://img-blog.csdnimg.cn/img_convert/41665cf21f450172ac89a7ff93e7bf39.jpeg)
④如何选择合适的分区数(性能测试工具+分区数越多吞吐量就越高吗+分区数的上限+参考因素)
![128e4aac0b44bb7449b48b220a6fa55b.jpeg](https://img-blog.csdnimg.cn/img_convert/128e4aac0b44bb7449b48b220a6fa55b.jpeg)
五、日志存储
①文件目录布局
![2f91484b4a65d85519624f8727c442f3.jpeg](https://img-blog.csdnimg.cn/img_convert/2f91484b4a65d85519624f8727c442f3.jpeg)
②日志格式的演变(v0版本+v1版本+消息压缩+变长字段+v2版本)
![b36bdbc7d2d10e6c88669fbfd8825af3.jpeg](https://img-blog.csdnimg.cn/img_convert/b36bdbc7d2d10e6c88669fbfd8825af3.jpeg)
③日志索引(偏移量索引+时间戳索引)
![39754448e8d1ba48f6c023233b2004e6.jpeg](https://img-blog.csdnimg.cn/img_convert/39754448e8d1ba48f6c023233b2004e6.jpeg)
④日志清理(日志删除+日志压缩)
![dd3a985222bf468a477e08847291984d.jpeg](https://img-blog.csdnimg.cn/img_convert/dd3a985222bf468a477e08847291984d.jpeg)
⑤磁盘存储(页缓存+磁盘I/O流程+零拷贝)
![b80ebbfc67d80c84dc905c7c99a25115.jpeg](https://img-blog.csdnimg.cn/img_convert/b80ebbfc67d80c84dc905c7c99a25115.jpeg)
六、深入服务端
①协议设计
![d1fe03292285909dec1eecfb5d46e1d6.jpeg](https://img-blog.csdnimg.cn/img_convert/d1fe03292285909dec1eecfb5d46e1d6.jpeg)
②时间轮
![0be70b8cee7f13991039a93955041a72.jpeg](https://img-blog.csdnimg.cn/img_convert/0be70b8cee7f13991039a93955041a72.jpeg)
③延时操作
![1e0a54e53a54a6186e3f0b8dfdff937d.jpeg](https://img-blog.csdnimg.cn/img_convert/1e0a54e53a54a6186e3f0b8dfdff937d.jpeg)
④控制器(控制器的选举及异常恢复+优雅关闭+分区leader的选举+参数解密)
![011e46dc22e9e8e86c54e3c702675c42.jpeg](https://img-blog.csdnimg.cn/img_convert/011e46dc22e9e8e86c54e3c702675c42.jpeg)
⑤参数解密(broker.id+bootstrap.servers+服务端参数列表)
![3625f8594e6a61bafc8137cf2625b8a5.jpeg](https://img-blog.csdnimg.cn/img_convert/3625f8594e6a61bafc8137cf2625b8a5.jpeg)
七、深入客户端
①分区分配策略(RangeAssignor分配策略+RoundRobinAssignor分配策略+StickyAssignor分配策略+自定义分区分配策略)
![624eae5ac0061a7607359b8443d106c9.jpeg](https://img-blog.csdnimg.cn/img_convert/624eae5ac0061a7607359b8443d106c9.jpeg)
②消费者协调器和组协调器(旧版消费者客户端的问题+再均衡的原理)
![f3f0be268b71463106687ac852ac5db1.jpeg](https://img-blog.csdnimg.cn/img_convert/f3f0be268b71463106687ac852ac5db1.jpeg)
③_consumer_offsets剖析
![c560d361285d500e4c47ced66b051d0c.jpeg](https://img-blog.csdnimg.cn/img_convert/c560d361285d500e4c47ced66b051d0c.jpeg)
④事务(消息传输保障+幂等+事务)
![629181d2c55d1cdd4b563a803e79ffe6.jpeg](https://img-blog.csdnimg.cn/img_convert/629181d2c55d1cdd4b563a803e79ffe6.jpeg)
八、可靠性探究
①副本剖析(失效副本+ISR的伸缩+LEO与HW+Leader Epoch的介入+为什么不支持读写分离)
![cb9e2f7831bd3b1ae86d0ecf89eafedc.jpeg](https://img-blog.csdnimg.cn/img_convert/cb9e2f7831bd3b1ae86d0ecf89eafedc.jpeg)
②日志同步机制
![19ce6fbf91712c31fd05c37814926d18.jpeg](https://img-blog.csdnimg.cn/img_convert/19ce6fbf91712c31fd05c37814926d18.jpeg)
③可靠性分析
![654181564ade59d2a99f201b20cc80ea.jpeg](https://img-blog.csdnimg.cn/img_convert/654181564ade59d2a99f201b20cc80ea.jpeg)
九、Kafka应用
①命令行工具(消费组管理+消费位移管理+手动删除消息)
![67cb53c1138018bb7b1a11dbbc47a129.jpeg](https://img-blog.csdnimg.cn/img_convert/67cb53c1138018bb7b1a11dbbc47a129.jpeg)
②Kafka Connect(独立模式+REST API+分布式模式)
![e707c9949dd9eab6fd77f6ff93b6a57e.jpeg](https://img-blog.csdnimg.cn/img_convert/e707c9949dd9eab6fd77f6ff93b6a57e.jpeg)
③Kafka Mirror Maker
![f7fc824c2d40f91471a66091cf26fda9.jpeg](https://img-blog.csdnimg.cn/img_convert/f7fc824c2d40f91471a66091cf26fda9.jpeg)
④Kafka Streams
![9f60011bd7925977cb22752a73886ae3.jpeg](https://img-blog.csdnimg.cn/img_convert/9f60011bd7925977cb22752a73886ae3.jpeg)
十、Kafka监控
①监控数据的来源(OneMinuteRate+获取监控指标)
![e017f11732bffc270b49b54e856bd5e9.jpeg](https://img-blog.csdnimg.cn/img_convert/e017f11732bffc270b49b54e856bd5e9.jpeg)
②消费滞后
![a80be8004cd3d6fc5143e26791162085.jpeg](https://img-blog.csdnimg.cn/img_convert/a80be8004cd3d6fc5143e26791162085.jpeg)
③同步失效分区
![2dcf71a8b87a0a67a6840dc07babe636.jpeg](https://img-blog.csdnimg.cn/img_convert/2dcf71a8b87a0a67a6840dc07babe636.jpeg)
④监控指标说明
![104060e6e4d4f191248d1d0a4646df40.jpeg](https://img-blog.csdnimg.cn/img_convert/104060e6e4d4f191248d1d0a4646df40.jpeg)
⑤监控模块
![0be8025a79f43a9a3c6922e83bd65b6f.jpeg](https://img-blog.csdnimg.cn/img_convert/0be8025a79f43a9a3c6922e83bd65b6f.jpeg)
十一、高级应用
①过期时间(TTL)
![359ac7d9ae7fbb29a7f75eee133df80e.jpeg](https://img-blog.csdnimg.cn/img_convert/359ac7d9ae7fbb29a7f75eee133df80e.jpeg)
②延时队列
![0aeaea99f4a7ffc52d911c81b2d065b8.jpeg](https://img-blog.csdnimg.cn/img_convert/0aeaea99f4a7ffc52d911c81b2d065b8.jpeg)
③死信队列和重试队列
![77ac487cacbb2641a897c890287537cb.jpeg](https://img-blog.csdnimg.cn/img_convert/77ac487cacbb2641a897c890287537cb.jpeg)
④消息路由
![4bb20e94a9276b61f3c486f5407d0d68.jpeg](https://img-blog.csdnimg.cn/img_convert/4bb20e94a9276b61f3c486f5407d0d68.jpeg)
⑤消息轨迹
![63dcc5c69ae7de76d241005a32355181.jpeg](https://img-blog.csdnimg.cn/img_convert/63dcc5c69ae7de76d241005a32355181.jpeg)
⑥消息审计
![03cf6344a78027edf6dfb65a4ae618a4.jpeg](https://img-blog.csdnimg.cn/img_convert/03cf6344a78027edf6dfb65a4ae618a4.jpeg)
⑦消息代理(快速入门+REST API介绍及示例+服务端配置及部署+应用思考)
![c02c5dc61fbaf69a0256b93e71778c65.jpeg](https://img-blog.csdnimg.cn/img_convert/c02c5dc61fbaf69a0256b93e71778c65.jpeg)
⑧消息中间件选型(各类消息中间件简述+选型要点概述+消息中间件选型误区探讨)
![fa111b493bd02b778cc3298f41f4257b.jpeg](https://img-blog.csdnimg.cn/img_convert/fa111b493bd02b778cc3298f41f4257b.jpeg)
十二、Kafka与Spark的集成
①Spark的安装及简单应用
![09218c38c611a8b50d7da8661e3a0fad.jpeg](https://img-blog.csdnimg.cn/img_convert/09218c38c611a8b50d7da8661e3a0fad.jpeg)
②Spark编程模型
![1b92761d3422fa562ad9a63db346d379.jpeg](https://img-blog.csdnimg.cn/img_convert/1b92761d3422fa562ad9a63db346d379.jpeg)
③Spark的运行结构
![e39c6f3a2fca88d401cf650c400eb4a0.jpeg](https://img-blog.csdnimg.cn/img_convert/e39c6f3a2fca88d401cf650c400eb4a0.jpeg)
④Spark Streaming简介
![88e482f983617808623a75ba34d9802e.jpeg](https://img-blog.csdnimg.cn/img_convert/88e482f983617808623a75ba34d9802e.jpeg)
⑤Kafka与Spark Streaming的整合
![ca11373a09b74eba4d76c4031fa8eb14.jpeg](https://img-blog.csdnimg.cn/img_convert/ca11373a09b74eba4d76c4031fa8eb14.jpeg)
⑥Spark SQL
![24b63c4d9dab01cdf419d7ca703bdc46.jpeg](https://img-blog.csdnimg.cn/img_convert/24b63c4d9dab01cdf419d7ca703bdc46.jpeg)
⑦Structured Streaming
![d8159af56e7110e767ce877aeffb150d.jpeg](https://img-blog.csdnimg.cn/img_convert/d8159af56e7110e767ce877aeffb150d.jpeg)
⑧Kafka与Structured Streaming的整合
![f6a8d066a5383b74d9e138e3b2e35555.jpeg](https://img-blog.csdnimg.cn/img_convert/f6a8d066a5383b74d9e138e3b2e35555.jpeg)
总结
Kafka的探讨就在这里,只能展示部分内容,实际上笔记内详细记载了Kafka的实践内容,包括大量的代码实现形式。
如果你对自己的职业生涯有清晰的规划路线,想要往更长远的方向去发展,那么学习Kafka,想必刻不容缓。
获取方式:需要这份《Kafka笔记》的朋友
添加下方名片联系方式免费获取