《深入理解Kafka 核心设计与实践原理》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:朱忠华著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2019
  • ISBN:9787121359026
  • 页数:443 页
图书介绍:本书从Kafka的基本概念入手,主要从生产端、消费端、服务端等3个方面进行全面的陈述,主要内容包括Kafka的基本使用方式、生产者客户端的使用、消费者客户端的使用、主题与分区、日志存储、深入原理解析、监控的设计、高级应用的扩展以及与Spark的集成等。虽然Kafka的内核使用Scala语言编写,但是本书基本以Java语言作为主要的示例语言,方便绝大多数读者的理解。本书虽然没有明确的界定,但是总体上可以隐性的划分为三个部分:基础篇、原理篇和扩展篇,以这种循序渐进的方式更能让读者容易接受。

第1章 初识Kafka 1

1.1基本概念 1

1.2安装与配置 7

1.3生产与消费 12

1.4服务端参数配置 16

1.5总结 18

第2章 生产者 19

2.1客户端开发 19

2.1.1必要的参数配置 21

2.1.2消息的发送 23

2.1.3序列化 27

2.1.4分区器 31

2.1.5生产者拦截器 33

2.2原理分析 36

2.2.1整体架构 36

2.2.2元数据的更新 39

2.3重要的生产者参数 40

2.4总结 44

第3章 消费者 45

3.1消费者与消费组 45

3.2客户端开发 47

3.2.1必要的参数配置 49

3.2.2订阅主题与分区 51

3.2.3反序列化 54

3.2.4消息消费 59

3.2.5位移提交 62

3.2.6控制或关闭消费 70

3.2.7指定位移消费 72

3.2.8再均衡 79

3.2.9消费者拦截器 81

3.2.10多线程实现 84

3.2.11重要的消费者参数 93

3.3总结 96

第4章 主题与分区 97

4.1主题的管理 97

4.1.1创建主题 98

4.1.2分区副本的分配 106

4.1.3查看主题 111

4.1.4修改主题 113

4.1.5配置管理 117

4.1.6主题端参数 120

4.1.7删除主题 122

4.2初识KafkaAdminClient 125

4.2.1基本使用 125

4.2.2主题合法性验证 130

4.3分区的管理 132

4.3.1优先副本的选举 132

4.3.2分区重分配 136

4.3.3复制限流 140

4.3.4修改副本因子 146

4.4如何选择合适的分区数 150

4.4.1性能测试工具 150

4.4.2分区数越多吞吐量就越高吗 153

4.4.3分区数的上限 155

4.4.4考量因素 159

4.5总结 160

第5章 日志存储 161

5.1文件目录布局 161

5.2日志格式的演变 164

5.2.1 v0版本 165

5.2.2 v1版本 167

5.2.3消息压缩 168

5.2.4变长字段 170

5.2.5 v2版本 174

5.3日志索引 180

5.3.1偏移量索引 181

5.3.2时间戳索引 183

5.4日志清理 185

5.4.1日志删除 185

5.4.2日志压缩 188

5.5磁盘存储 192

5.5.1页缓存 194

5.5.2磁盘I/O流程 195

5.5.3零拷贝 198

5.6总结 200

第6章 深入服务端 201

6.1协议设计 201

6.2时间轮 209

6.3延时操作 213

6.4控制器 217

6.4.1控制器的选举及异常恢复 217

6.4.2优雅关闭 220

6.4.3分区leader的选举 228

6.5参数解密 229

6.5.1 broker.id 229

6.5.2 bootstrap.servers 231

6.5.3服务端参数列表 236

6.6总结 239

第7章 深入客户端 240

7.1分区分配策略 240

7.1.1 RangeAssignor分配策略 240

7.1.2 RoundRobinAssignor分配策略 241

7.1.3 StickyAssignor分配策略 242

7.1.4自定义分区分配策略 245

7.2消费者协调器和组协调器 252

7.2.1旧版消费者客户端的问题 252

7.2.2再均衡的原理 254

7.3_consumer_offsets剖析 264

7.4事务 268

7.4.1消息传输保障 268

7.4.2幂等 269

7.4.3事务 270

7.5总结 283

第8章 可靠性探究 284

8.1副本剖析 284

8.1.1失效副本 285

8.1.2 ISR的伸缩 287

8.1.3 LEO与HW 289

8.1.4 Leader Epoch的介入 292

8.1.5为什么不支持读写分离 297

8.2日志同步机制 299

8.3可靠性分析 301

8.4总结 305

第9章 Kafka应用 306

9.1命令行工具 306

9.1.1消费组管理 307

9.1.2消费位移管理 309

9.1.3手动删除消息 313

9.2 Kafka Connect 315

9.2.1独立模式 315

9.2.2 REST API 319

9.2.3分布式模式 320

9.3 Kafka Mirror Maker 322

9.4 Kafka Streams 325

9.5总结 330

第10章 Kafka监控 331

10.1监控数据的来源 333

10.1.1 OneMinuteRate 335

10.1.2获取监控指标 336

10.2消费滞后 339

10.3同步失效分区 350

10.4监控指标说明 355

10.5监控模块 358

10.6总结 360

第11章 高级应用 361

11.1过期时间(TTL) 361

11.2延时队列 365

11.3死信队列和重试队列 372

11.4消息路由 373

11.5消息轨迹 375

11.6消息审计 377

11.7消息代理 379

11.7.1快速入门 380

11.7.2 REST API介绍及示例 382

11.7.3服务端配置及部署 388

11.7.4应用思考 391

11.8消息中间件选型 392

11.8.1各类消息中间件简述 393

11.8.2选型要点概述 393

11.8.3消息中间件选型误区探讨 400

11.9总结 401

第12章 Kafka与Spark的集成 402

12.1 Spark的安装及简单应用 403

12.2 Spark编程模型 406

12.3 Spark的运行结构 410

12.4 Spark Streaming简介 412

12.5 Kafka与Spark Streaming的整合 416

12.6 Spark SQL 423

12.7 Structured Streaming 426

12.8 Kafka与Structured Streaming的整合 430

12.9总结 437

附录A Kafka源码环境搭建 438