摘要

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 即可免费获取!