基本信息

编辑推荐
本书从LinkedIn(领英)公司内部大数据架构讲起,引申出消息队列Kafka,接着讲解Kafka的基本架构,然后着重分析Kafka内部的各模块实现细节。从诞生背景至架构组成,再到内部实现细节,由浅入深,循序渐进。本书不仅讲解Kafka内部的实现原理,而且还详细描述Kafka外部的维护工具,对外的客户端编程原理以及和第三方集成的方式。本书在讲解Kafka的过程中穿插了大量的图片,图文并茂,生动形象,使读者能更加深入地熟悉Kafka。
内容简介
计算机书籍
本书系统介绍Kafka的实现原理和应用方法,并介绍Kafka的运维工具、客户端编程方法和第三方集成方式,深入浅出、图文并茂、分析透彻。本书共10章,主要内容包括:第1章介绍Kafka诞生的背景和主要涉及目标。第2章介绍Kafka的基本组成、拓扑结构以及内部的通信协议。第3章介绍Broker Server及内部的模块组成。第4章介绍Broker Server内部的九大基本模块。第5章介绍Broker的控制管理模块。第6章介绍Topic的管理工具。第7章从设计原则、示例代码、模块组成和发送模式四个方面介绍有关消息生产者的相关知识。第8章介绍两种消费者:简单消费者和高级消费者。第9章介绍Kafka的典型应用,包括与Storm、ELK、Hadoop、Spark典型大数据系统的集成。第10章介绍了一个综合实例,描述Kafka作为数据总线在安防整体解决方案中的作用。
目录
前言
第1章 Kafka简介 1
1.1 Kafka诞生的背景 1
1.2 Kafka在LinkedIn内部的应用 3
1.3 Kafka的主要设计目标 4
1.4 为什么使用消息系统 4
1.5 本章小结 5
第2章 Kafka的架构 6
2.1 Kafka的基本组成 6
2.2 Kafka的拓扑结构 8
2.3 Kafka内部的通信协议 9
2.4 本章小结 12
第3章 Broker概述 13
3.1 Broker的启动 13
3.2 Broker内部的模块组成 15
3.3 本章小结 18
第4章 Broker的基本模块 19
4.1 SocketServer 19
4.2 KafkaRequestHandlerPool 25
前言
本书将从初学者的角度出发,循序渐进地讲解Kafka内部的实现原理,但是由于Kafka是基于Scala语言编写的,因此为了更好地阅读本书,希望读者对于Scala语言有大致的了解。
阅读指南
本书将从Kafka的内部实现原理、运维工具、客户端编程以及实际应用这四个方面出发,系统阐述有关Kafka的各方面知识,全书共10章,每章的大致内容如下。
第1章介绍Kafka诞生的背景、Kafka在LinkedIn内部的应用、Kafka的主要设计目标以及为什么使用消息系统。
第2章介绍Kafka的基本组成、拓扑结构及其内部的通信协议。
第3章描述Kafka集群组成的基本元素Broker Server的启动以及内部的模块组成。通过阅读这一章,读者能对Broker Server有整体上的印象,为之后章节的阅读打下基础。
第4章描述Broker Server内部的九大基本模块:SocketServer、KafkaRequestHandlerPool、LogManager、ReplicaManager、OffsetManager、KafkaScheduler、KafkaApis、KafkaHealthcheck和TopicConfigManager。
第5章介绍Broker Server的控制管理模块KafkaController,这个模块负责整个Kafka集群的管理,例如:Topic的新建和删除、分区状态和副本状态的转换、集群的负载均衡管理等。
第6章介绍三个维护脚本:kafka-topics.sh、kafka-reassign-partitions.sh和kafka-preferred-replica-election.sh,它们分别涉及Topic的生命周期管理、Topic分区的重分配和分区首选副本的选择。
第7章从设计原则、示例代码、模块组成和发送模式四个部分介绍有关消息生产者的相关知识,从设计原则至客户端编程,从客户端编程到内部实现原理,由浅入深,循序渐进地讲解。
第8章分别介绍两种消费者:简单消费者和高级消费者。针对每种消费者都将依次从设计原则、消费者流程、示例代码以及原理解析四个部分介绍消费者的相关知识。
第9章介绍Kafka与典型大数据系统的集成,包括:Kafka和Storm的集成、Kafka和ELK的集成、Kafka和Hadoop的集成以及Kafka和Spark的集成。希望通过本章使读者对Kafka和第三方大数据平台集成有大致的了解。
第10章用综合实例描述了Kafka的应用,案例描述Kafka作为数据总线在安防整体解决方案中的作用,通过车辆人脸图片数据的入库、视频数据的入库、数据延时的监控、数据质量的监控、布控统计和容灾备份6个业务,简要阐述内部的实现原理。
本书是基于0.8.2版本的Kafka编写的,其相关配套的源码可以从Kafka的官方网站上下载,下载地址为http://kafka.apache.org/downloads,也可以从开源或者私有软件项目托管平台GitHub上下载,下载地址为https://github.com/apache/kafka。为了简化代码流程描述,笔者会将一些日志打印等不影响阅读的代码用“……”代替,如果需要知道“……”代表的实际含义,可以参考源码包中的真实代码。
本书特点
由浅入深,循序渐进:本书从LinkedIn(领英)公司内部大数据架构讲起,引出消息队列Kafka,接着讲解Kafka的基本架构,然后着重分析Kafka内部的各模块实现细节。从诞生背景至架构组成,再到内部实现细节,由浅入深,循序渐进,让读者在阅读时能够逐步了解Kafka。
由里到外,层层剖析:本书不仅讲解Kafka内部的实现原理,而且还详细描述Kafka外部的维护工具,对外的客户端编程原理以及和第三方集成的方式。由里到外,层层剖析,让读者在阅读时能够更加全面地掌握Kafka。
图文并茂,生动形象:本书在讲解Kafka的过程中穿插了大量的图片,直观地描述了工作原理,使读者在阅读时能够加深对代码的理解。
读者对象
序言
值得庆幸的是,本书全面解析了Kafka的核心架构设计和源码,是国内少有的针对Kafka进行系统性讲解的书籍。
作者在浙江大华技术股份有限公司工作期间,一方面参与分布式数据库平台开发,一方面参与整体的系统架构设计。由于各种不同的应用场景的需求,作者所在公司内部用过多种不同消息队列,如Kafka、ActiveMQ、RocketMQ等,同时也实操了大量的Hadoop、Spark等大数据技术和消息队列的结合应用,这些经历使得作者能比较全面地从理论和实践两个视角去看待Kafka。阅读本书可使读者深入了解Kafka的设计原理和使用技巧,相信读者一定会有所收获。
许焰
大华股份,研发副总经理