这是一个数据大爆炸的时代,互联网成为了数据传播的主要载体。大数据处理平台在现代化的互联网公司进行商业决策、规划发展、市场拓展等方面扮演着越来越重要的角色。Kafka作为大数据平台的重要组件之一,受到越来越多的设计人员和开发人员的青睐,Kafka的社区也变得越来越活跃,Kafka本身的架构设计、应用场景也得到了长足的发展。
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

 

由于篇章问题就不一一解释了,需要学习这份 Kafka源码剖析实战文档的朋友:关注我 + 转发文章,后台私信【kafka】即可免费获取

第1章是Kafka的快速入门,其中介绍了 Kaflca的背景、特性以及应用场景。之后介绍了笔者在实践中遇到的一个以Kafka为中心的案例,并分析了在此案例中选择使用Kafka的具体原因和Kafka起到的关键作用。最后介绍了 Kafka中的核心概念和Kafka源码调试环境的搭建。

第1章 快速入门

  • 1.1 Kafka简介
  • 1.2 以Kafka为中心的解决方案
  • 1.3 Kafka核心概念
  • 1.4 搭建Kafka源码环境

 

 

 

 

第2章介绍了生产者客户端的设计特点和实现细节,剖析了 KafkaProducer拦截消息、序列化消息、路由消息等功能的源码实现,介绍了 RecordAccumulator的结构和实现。最后剖析了 KafkaProducer中Sender线程的源码。

第2章 生产者

  • 2.1  KafkaProducer使用示例
  • 2.2 KafkaProducer分析
  • 2.2.1 ProducerInterceptors&ProducerInterceptor
  • 2.2.2 Kafka集群元数据
  • 2.2.3 Serializer&Deserializer
  • 2.2.4 Partitioner
  • 2.3 RecordAccumulator分析
  • 2.3.1 MemoryRecords
  • 2.3.2 RecordBatch
  • 2.3.3 BufferPool
  • 2.3.4 RecordAccumulator
  • 2.4 Sender分析
  • 2.4.1 创建请求
  • 2.4.2 KSelector
  • 2.4.3 InFlightRequests
  • 2.4.4 MetadataUpdater
  • 2.4.5 NetworkClient

 

 

 

 

第3章介绍了 Kafka的消息传递保证语义并给出了相关的实践建议,还介绍了 ConsumerGroup Rebalance操作各个版本方案的原理和弊端。最后详细剖析了 KafkaConsumer相关组件的运行原理和实现细节。

第3章 消费者

  • 3.1 KafkaConsumer使用示例
  • 3.2 传递保证语义(Delivery guarantee semantic)
  • 3.3 Consumer Group Rebalance设计
  • 3.4 KafkaConsumer分析
  • 3.4.1 ConsumerNetworkClient
  • 3.4.2 SubscriptionState
  • 3.4.3 ConsumerCoordinator
  • 3.4.4 PartitionAssignor分析
  • 3.4.5 Heartbeat分析
  • 3.4.6 Rebalance实现
  • 3.4.7 offset操作
  • 3.4.8 Fetcher
  • 3.4.9 KafkaConsumer分析总结

 

 

 

 

第4章介绍了构成Kaflca服务端的各个组件,依次分析了 Kaflca网络层、API层、日志存储、DelayedOperationPurgatory 组件、Kafka 的副本机制、KafkaController. GroupCoordinator、Kafka的身份认证与权限控制以及Kafka监控相关的实现。本章是Kafka的核心内容,涉及较多的设计细节和编程技巧,希望读者阅读之后有所收获。

第4章 Kafka服务端

  • 4.1 网络层
  • 4.1.1 Reactor模式
  • 4.1.2 SocketServer
  • 4.1.3 AbstractServerThread
  • 4.1.4 Acceptor
  • 4.1.5 Processor
  • 4.1.6 RequestChannel
  • 4.2 API层
  • 4.2.1 KafkaRequestHandler
  • 4.2.2 KafkaApis
  • 4.3 日志存储
  • 4.3.1 基本概念
  • 4.3.2 FileMessageSet
  • 4.3.3 ByteBufferMessageSet
  • 4.3.4 OffsetIndex
  • 4.3.5 LogSegment
  • 4.3.6 Log
  • 4.3.7 LogManager
  • 4.4 DelayedOperationPurgatory组件
  • 4.4.1 TimingWheel
  • 4.4.2 SystemTimer
  • 4.4.3 DelayedOperation
  • 4.4.4 DelayedOperationPurgatory
  • 4.4.5 DelayedProduce
  • 4.4.6 DelayedFetch
  • 4.5 副本机制
  • 4.5.1 副本
  • 4.5.2 分区
  • 4.5.3 ReplicaManager
  • 4.6 KafkaController
  • 4.6.1 ControllerChannelManager
  • 4.6.2 ControllerContext
  • 4.6.3 ControllerBrokerRequestBatch
  • 4.6.4 PartitionStateMachine
  • 4.6.5 PartitionLeaderSelector
  • 4.6.6 ReplicaStateMachine
  • 4.6.7 ZooKeeper Listener
  • 4.6.8 KafkaController初始化与故障转移
  • 4.6.9 处理ControlledShutdownRequest
  • 4.7 GroupCoordinator
  • 4.7.1 GroupMetadataManager
  • 4.7.2 GroupCoordinator分析
  • 4.8 身份认证与权限控制
  • 4.8.1 配置SASL/PLAIN认证
  • 4.8.2 身份认证
  • 4.8.3 权限控制
  • 4.9 Kafka监控
  • 4.9.1 JMX简介
  • 4.9.2 Metrics简介
  • 4.9.3 Kafka中的Metrics
  • 4.9.4 Kafka的监控功能
  • 4.9.5 监控KSelector的指标

 

 

 

 

第5章介绍了 Kafka提供的多个脚本工具的使用以及具体实现原理,了解这些脚本可以帮助管理人员快速完成一些常见的管理、运维、测试功能。

第5章 Kafka Tool

  • 5.1 kafka-server-start脚本
  • 5.2 kafka-topics脚本
  • 5.2.1 创建Topic
  • 5.2.2 修改Topic
  • 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犹如经络,串联整个系统。《 Kafka源码剖析实战》通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码

由于文档的内容过多,只截取了目录部分,

需要这份Kafka源码剖析实战的朋友:关注我 ,后台私信【kafka】即可免费获取