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