新書推薦:
《
王阳明大传:知行合一的心学智慧(精装典藏版)
》
售價:NT$
1010.0
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:NT$
602.0
《
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
》
售價:NT$
352.0
《
南方谈话:邓小平在1992
》
售價:NT$
367.0
《
纷纭万端 : 近代中国的思想与社会
》
售價:NT$
500.0
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:NT$
765.0
《
朋党之争与北宋政治·大学问
》
售價:NT$
454.0
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:NT$
403.0
|
編輯推薦: |
业内专家王国璋、付稳、王迪、杨金峰联袂力荐。 基于Apache Kafka 1.0.0版本进行介绍,Kafka Contributor执笔。 从Kafka基本概念与特性开始,详细介绍了Kafka的部署、开发、运营、监控、调试、优化以及重要组件的设计原理,并给出了翔实的案例。 本书既适合作为Kafka的入门书籍,也适合系统架构师和一线开发工程师参考阅读。
|
內容簡介: |
本书是涵盖Apache Kafka各方面的具有实践指导意义的工具书和参考书。作者结合典型的使用场景,对Kafka整个技术体系进行了较为全面的讲解,以便读者能够举一反三,直接应用于实践。同时,本书还对Kafka的设计原理及其流式处理组件进行了较深入的探讨,并给出了翔实的案例。本书共分为10章:第1章全面介绍消息引擎系统以及Kafka的基本概念与特性,快速带领读者走进Kafka的世界;第2章简要回顾了Apache Kafka的发展历史;第3章详细介绍了Kafka集群环境的搭建;第4、5章深入探讨了Kafka客户端的使用方法;第6章带领读者一览Kafka内部设计原理;第7~9章以实例的方式讲解了Kafka集群的管理、监控与调优;第10章介绍了Kafka新引入的流式处理组件。
|
關於作者: |
胡夕,8年分布式系统架构和开发经验,曾负责IBM重要产品的研发和技术支持。在搜狗任职期间主导构建了大数据分布式流式处理平台,为实时提供业务决策提供了重要支撑。后在微博带领团队参与构建了微博混合云项目核心模块的设计与研发,成功应对春晚峰值流量。
|
目錄:
|
目录
第1章 认识Apache Kafka1
1.1 Kafka快速入门1
1.1.1 下载并解压缩Kafka二进制代码压缩包文件2
1.1.2 启动服务器3
1.1.3 创建topic3
1.1.4 发送消息4
1.1.5 消费消息4
1.2 消息引擎系统5
1.2.1 消息设计6
1.2.2 传输协议设计6
1.2.3 消息引擎范型6
1.2.4 Java消息服务8
1.3 Kafka概要设计8
1.3.1 吞吐量延时8
1.3.2 消息持久化11
1.3.3 负载均衡和故障转移12
1.3.4 伸缩性13
1.4 Kafka基本概念与术语13
1.4.1 消息14
1.4.2 topic和partition16
1.4.3 offset17
1.4.4 replica18
1.4.5 leader和follower18
1.4.6 ISR19
1.5 Kafka使用场景20
1.5.1 消息传输20
1.5.2 网站行为日志追踪20
1.5.3 审计数据收集20
1.5.4 日志收集20
1.5.5 Event Sourcing21
1.5.6 流式处理21
1.6 本章小结21
第2章 Kafka发展历史22
2.1 Kafka的历史22
2.1.1 背景22
2.1.2 Kafka横空出世23
2.1.3 Kafka开源24
2.2 Kafka版本变迁25
2.2.1 Kafka的版本演进25
2.2.2 Kafka的版本格式26
2.2.3 新版本功能简介26
2.2.4 旧版本功能简介31
2.3 如何选择Kafka版本35
2.3.1 根据功能场景35
2.3.2 根据客户端使用场景35
2.4 Kafka与Confluent36
2.5 本章小结37
第3章 Kafka线上环境部署38
3.1 集群环境规划38
3.1.1 操作系统的选型38
3.1.2 磁盘规划40
3.1.3 磁盘容量规划42
3.1.4 内存规划43
3.1.5 CPU规划43
3.1.6 带宽规划44
3.1.7 典型线上环境配置45
3.2 伪分布式环境安装45
3.2.1 安装Java46
3.2.2 安装ZooKeeper47
3.2.3 安装单节点Kafka集群48
3.3 多节点环境安装49
3.3.1 安装多节点ZooKeeper集群50
3.3.2 安装多节点Kafka54
3.4 验证部署55
3.4.1 测试topic创建与删除55
3.4.2 测试消息发送与消费57
3.4.3 生产者吞吐量测试58
3.4.4 消费者吞吐量测试58
3.5 参数设置59
3.5.1 broker端参数59
3.5.2 topic级别参数62
3.5.3 GC参数63
3.5.4 JVM参数64
3.5.5 OS参数64
3.6 本章小结65
第4章 producer开发66
4.1 producer概览66
4.2 构造producer69
4.2.1 producer程序实例69
4.2.2 producer主要参数75
4.3 消息分区机制80
4.3.1 分区策略80
4.3.2 自定义分区机制80
4.4 消息序列化83
4.4.1 默认序列化83
4.4.2 自定义序列化84
4.5 producer拦截器87
4.6 无消息丢失配置90
4.6.1 producer端配置91
4.6.2 broker端配置92
4.7 消息压缩92
4.7.1 Kafka支持的压缩算法93
4.7.2 算法性能比较与调优93
4.8 多线程处理95
4.9 旧版本producer96
4.10 本章小结98
第5章 consumer开发99
5.1 consumer概览99
5.1.1 消费者(consumer)99
5.1.2 消费者组(consumer group)101
5.1.3 位移(offset)102
5.1.4 位移提交103
5.1.5 __consumer_offsets104
5.1.6 消费者组重平衡(consumer group rebalance)106
5.2 构建consumer106
5.2.1 consumer程序实例106
5.2.2 consumer脚本命令111
5.2.3 consumer主要参数112
5.3 订阅topic115
5.3.1 订阅topic列表115
5.3.2 基于正则表达式订阅topic115
5.4 消息轮询115
5.4.1 poll内部原理115
5.4.2 poll使用方法116
5.5 位移管理118
5.5.1 consumer位移119
5.5.2 新版本consumer位移管理120
5.5.3 自动提交与手动提交121
5.5.4 旧版本consumer位移管理123
5.6 重平衡(rebalance)123
5.6.1 rebalance概览123
5.6.2 rebalance触发条件124
5.6.3 rebalance分区分配124
5.6.4 rebalance generation126
5.6.5 rebalance协议126
5.6.6 rebalance流程127
5.6.7 rebalance监听器128
5.7 解序列化130
5.7.1 默认解序列化器130
5.7.2 自定义解序列化器131
5.8 多线程消费实例132
5.8.1 每个线程维护一个KafkaConsumer133
5.8.2 单KafkaConsumer实例 多worker线程135
5.8.3 两种方法对比140
5.9 独立consumer141
5.10 旧版本consumer142
5.10.1 概览142
5.10.2 high-level consumer143
5.10.3 low-level consumer147
5.11 本章小结153
第6章 Kafka设计原理154
6.1 broker端设计架构154
6.1.1 消息设计155
6.1.2 集群管理166
6.1.3 副本与ISR设计169
6.1.4 水印(watermark)和leader epoch174
6.1.5 日志存储设计185
6.1.6 通信协议(wire protocol)194
6.1.7 controller设计205
6.1.8 broker请求处理216
6.2 producer端设计219
6.2.1 producer端基本数据结构219
6.2.2 工作流程220
6.3 consumer端设计223
6.3.1 consumer group状态机223
6.3.2 group管理协议226
6.3.3 rebalance场景剖析227
6.4 实现精确一次处理语义230
6.4.1 消息交付语义230
6.4.2 幂等性producer(idempotent producer)231
6.4.3 事务(transaction)232
6.5 本章小结234
第7章 管理Kafka集群235
7.1 集群管理235
7.1.1 启动broker235
7.1.2 关闭broker236
7.1.3 设置JMX端口237
7.1.4 增加broker238
7.1.5 升级broker版本238
7.2 topic管理241
7.2.1 创建topic241
7.2.2 删除topic243
7.2.3 查询topic列表244
7.2.4 查询topic详情244
7.2.5 修改topic245
7.3 topic动态配置管理246
7.3.1 增加topic配置246
7.3.2 查看topic配置247
7.3.3 删除topic配置248
7.4 consumer相关管理248
7.4.1 查询消费者组248
7.4.2 重设消费者组位移251
7.4.3 删除消费者组256
7.4.4 kafka-consumer-offset-checker257
7.5 topic分区管理258
7.5.1 preferred leader选举258
7.5.2 分区重分配260
7.5.3 增加副本因子263
7.6 Kafka常见脚本工具264
7.6.1 kafka-console-producer脚本264
7.6.2 kafka-console-consumer脚本265
7.6.3 kafka-run-class脚本267
7.6.4 查看消息元数据268
7.6.5 获取topic当前消息数270
7.6.6 查询__consumer_offsets271
7.7 API方式管理集群273
7.7.1 服务器端API管理topic273
7.7.2 服务器端API管理位移275
7.7.3 客户端API管理topic276
7.7.4 客户端API查看位移280
7.7.5 0.11.0.0版本客户端API281
7.8 MirrorMaker285
7.8.1 概要介绍285
7.8.2 主要参数286
7.8.3 使用实例287
7.9 Kafka安全288
7.9.1 SASL ACL289
7.9.2 SSL加密297
7.10 常见问题301
7.11 本章小结304
第8章 监控Kafka集群305
8.1 集群健康度检查305
8.2 MBean监控306
8.2.1 监控指标306
8.2.2 指标分类308
8.2.3 定义和查询JMX端口309
8.3 broker端JMX监控310
8.3.1 消息入站出站速率310
8.3.2 controller存活JMX指标311
8.3.3 备份不足的分区数312
8.3.4 leader分区数312
8.3.5 ISR变化速率313
8.3.6 broker IO工作处理线程空闲率313
8.3.7 broker网络处理线程空闲率314
8.3.8 单个topic总字节数314
8.4 clients端JMX监控314
8.4.1 producer端JMX监控314
8.4.2 consumer端JMX监控316
8.5 JVM监控317
8.5.1 进程状态318
8.5.2 GC性能318
8.6 OS监控318
8.7 主流监控框架319
8.7.1 JmxTool320
8.7.2 kafka-manager320
8.7.3 Kafka Monitor325
8.7.4 Kafka Offset Monitor327
8.7.5 CruiseControl329
8.8 本章小结330
第9章 调优Kafka集群331
9.1 引言331
9.2 确定调优目标333
9.3 集群基础调优334
9.3.1 禁止atime更新335
9.3.2 文件系统选择335
9.3.3 设置swapiness336
9.3.4 JVM设置337
9.3.5 其他调优337
9.4 调优吞吐量338
9.5 调优延时342
9.6 调优持久性343
9.7 调优可用性347
9.8 本章小结349
第10章 Kafka Connect与Kafka Streams350
10.1 引言350
10.2 Kafka Connect351
10.2.1 概要介绍351
10.2.2 standalone Connect353
10.2.3 distributed Connect356
10.2.4 开发connector359
10.3 Kafka Streams362
10.3.1 流处理362
10.3.2 Kafka Streams核心概念364
10.3.3 Kafka Streams与其他框架的异同368
10.3.4 Word Count实例369
10.3.5 Kafka Streams应用开发372
10.3.6 Kafka Streams状态查询382
10.4 本章小结386
|
|