摘要
Apache Kafka是一个分布式消息发布订阅系统。它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),之后成为Apache项目的一部分。
成千上万的企业都在使用Kafka,三分之一的世界500强公司也在其中,Kafka也是成长最快的开源项目之一,包括其生态系统也在蓬勃发展。Kafka正在成为管理和处理流式数据的利器。
Kafka系统快速、可扩展并且可持久化。它的分区特性,可复制和可容错都是其不错的特性。大家一起来跟着阿里专家学习Kafka吧。
![](https://img.haomeiwen.com/i22570485/91da54535be50bf4.png)
阿里专家手码Kafka学习路线图
由于整个PDF文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友 可以三连后台点这里来免费领取。
![](https://img.haomeiwen.com/i22570485/6d6c349237265864.png)
Kafka源码篇——Kafka快速入门
1.1Kafka简介
![](https://img.haomeiwen.com/i22570485/4b677ca79f53305e.png)
1.2以Kafka为中心的解决方案
![](https://img.haomeiwen.com/i22570485/2dc129e88a75c156.png)
1.3 Kafka核心概念
![](https://img.haomeiwen.com/i22570485/ec3c3ea808d5fbb8.png)
1.4搭建Kafka源码环境
![](https://img.haomeiwen.com/i22570485/e75b0900473307bb.png)
Kafka源码篇——生产者
2.1 KafkaProducer使用示例
![](https://img.haomeiwen.com/i22570485/38ea063de4227172.png)
2.2 KafkaProducer分析
![](https://img.haomeiwen.com/i22570485/92261f9c0a4aca47.png)
2.3 RecordAccumulator分析
![](https://img.haomeiwen.com/i22570485/882ceabcd481e207.png)
2.4 Sender分析
![](https://img.haomeiwen.com/i22570485/8cbe43c062430783.png)
Kafka源码篇——消费者
3.1 KafkaConsumer使用示例
![](https://img.haomeiwen.com/i22570485/b7cf7b01d79249c5.png)
3.2传递保证语义(Delivery guarantee semantic )
![](https://img.haomeiwen.com/i22570485/0e6536afa0e229f1.png)
3.3 Consumer Group Rebalance设计
![](https://img.haomeiwen.com/i22570485/9cf4bec6e877a0b1.png)
3.4 KafkaConsumer 分析
![](https://img.haomeiwen.com/i22570485/e35ed2c9ba2752eb.png)
Kafka源码篇——Kafka服务端
4.1网络层
![](https://img.haomeiwen.com/i22570485/50f8d1cc6fa091ea.png)
4.2API层
![](https://img.haomeiwen.com/i22570485/8d9a2cd464506646.png)
4.3日志存储
![](https://img.haomeiwen.com/i22570485/fd5b427d098d8a81.png)
4.4 DelayedOperationPurgatory组件
![](https://img.haomeiwen.com/i22570485/85f8fdcf1f7dbc36.png)
4.5副本机制
![](https://img.haomeiwen.com/i22570485/f00800ad3ad2ee3c.png)
4.6 KafkaController
![](https://img.haomeiwen.com/i22570485/febe2d9ab1e38b7c.png)
4.7 GroupCoordinator
![](https://img.haomeiwen.com/i22570485/7640e4553342fff7.png)
4.8身份认证与权限控制
![](https://img.haomeiwen.com/i22570485/5fecf5d2b81d23ad.png)
4.9Kafka监控
![](https://img.haomeiwen.com/i22570485/b1588675f134143e.png)
Kafka源码篇——Kafka Tool
5.1 kafka-server-start脚本
![](https://img.haomeiwen.com/i22570485/a8629ccc54f42dd4.png)
5.2kafka-topics脚本
![](https://img.haomeiwen.com/i22570485/fa59060d85c0c6f2.png)
5.3 kafka-preferred-replica-election脚本
![](https://img.haomeiwen.com/i22570485/80d989e9dc26468e.png)
5.4 kafka-reassign-partitions脚本
![](https://img.haomeiwen.com/i22570485/cc8f40eaa34dda41.png)
5.5 kafka-console-producer 脚本
![](https://img.haomeiwen.com/i22570485/55591c0c4a628c1d.png)
5.6 kafka-console-consumer 脚本
![](https://img.haomeiwen.com/i22570485/891c196596c97b7d.png)
5.7 kafka-consumer-groups脚本
![](https://img.haomeiwen.com/i22570485/ce28b60a805b9b6d.png)
5.8 DumpLogSegments
![](https://img.haomeiwen.com/i22570485/a061df4313b85448.png)
5.9 kafka-producer-perf-test 脚本
![](https://img.haomeiwen.com/i22570485/f145ba58e626556d.png)
5.10 kafka-consumer-perf-test脚本
![](https://img.haomeiwen.com/i22570485/644bb28afb328722.png)
5.11 kafka-mirror-maker脚本
![](https://img.haomeiwen.com/i22570485/242897d948732dac.png)
Kafka的设计与实现
讨论一:Kafka 存储在文件系统上
![](https://img.haomeiwen.com/i22570485/5db61bd73995b9e4.png)
讨论二:Kafka 中的底层存储设计
![](https://img.haomeiwen.com/i22570485/66db78aafbf68db4.png)
讨论三:生产者设计概要
讨论四:消费者设计概要
![](https://img.haomeiwen.com/i22570485/3697cc3edeb327c3.png)
讨论五:Kafka 如何保证可靠性
![](https://img.haomeiwen.com/i22570485/c612c3b4977d86fc.png)
最后
Apache Kafka与传统消息系统相比,有以下不同:
- 它被设计为一个分布式系统,易于向外扩展;
- 它同时为发布和订阅提供高吞吐量;
- 它支持多订阅者,当失败时能自动平衡消费者;
- 它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。
随着DT时代的到来,各大互联网企业都会遇到数据量激增,数据复杂度增加以及数据变化速率变快等问题,Kafka在处理这些问题上有较好的效果,必然也就成为了Java架构师以及大数据架构师需要深度钻研的技术。
完整的笔记内容约820MB,需要的话请三连支持,后再点这里 即可免费获取!
网友评论