Apache Kafka实战
2021-11-23 22:47:55 17 举报
AI智能生成
《Apache Kafka实战》书签
作者其他创作
大纲/内容
封面 1
书名页 3
版权页 4
前言 5
目录 8
1.1.1 下载并解压缩Kafka 二进制代码压缩包文件 18
1.1.2 启动服务器 19
1.1.3 创建 topic 19
1.1.4 发送消息 20
1.1.5 消费消息 20
1.1 Kafka 快速入门 17
1.2.1 消息设计 22
1.2.2 传输协议设计 22
1.2.3 消息引擎范型 22
1.2.4 Java 消息服务 24
1.2 消息引擎系统 21
1.3.1 吞吐量/延时 24
1.3.2 消息持久化 27
1.3.3 负载均衡和故障转移 28
1.3.4 伸缩性 29
1.3 Kafka 概要设计 24
1.4.1 消息 30
1.4.2 topic 和 partition 32
1.4.3 offset 33
1.4.4 replica 34
1.4.5 leader 和 follower 34
1.4.6 ISR 35
1.4 Kafka 基本概念与术语 29
1.5.1 消息传输 36
1.5.2 网站行为日志追踪 36
1.5.3 审计数据收集 36
1.5.4 日志收集 36
1.5.5 Event Sourcing 36
1.5.6 流式处理 37
1.5 Kafka 使用场景 36
1.6 本章小结 37
第1章 认识Apache Kafka 17
2.1.1 背景 38
2.1.2 Kafka 横空出世 39
2.1.3 Kafka 开源 40
2.1 Kafka 的历史 38
2.2.1 Kafka 的版本演进 41
2.2.2 Kafka 的版本格式 42
新版本 producer 42
新版本 consumer 45
2.2.3 新版本功能简介 42
旧版本 producer 47
旧版本 consumer 49
2.2.4 旧版本功能简介 47
2.2 Kafka 版本变迁 41
2.3.1 根据功能场景 51
2.3.2 根据客户端使用场景 51
2.3 如何选择 Kafka 版本 51
2.4 Kafka 与 Confluent 52
2.5 本章小结 53
第2章 Kafka发展历史 38
3.1.1 操作系统的选型 54
3.1.2 磁盘规划 56
3.1.3 磁盘容量规划 58
3.1.4 内存规划 59
3.1.5 CPU 规划 59
3.1.6 带宽规划 60
3.1.7 典型线上环境配置 61
3.1 集群环境规划 54
3.2.1 安装 Java 62
3.2.2 安装 ZooKeeper 63
3.2.3 安装单节点 Kafka 集群 64
3.2 伪分布式环境安装 61
3.3.1 安装多节点 ZooKeeper 集群 66
3.3.2 安装多节点 Kafka 70
3.3 多节点环境安装 65
3.4.1 测试 topic 创建与删除 71
3.4.2 测试消息发送与消费 73
3.4.3 生产者吞吐量测试 74
3.4.4 消费者吞吐量测试 74
3.4 验证部署 71
3.5.1 broker 端参数 75
3.5.2 topic 级别参数 78
3.5.3 GC 参数 79
3.5.4 JVM 参数 80
3.5.5 OS 参数 80
3.5 参数设置 75
3.6 本章小结 81
第3章 Kafka线上环境部署 54
4.1 producer 概览 82
1. 构造 Properties 对象 86
2. 构造 Kafka Producer 对象 87
3. 构造 ProducerRecord 对象 88
4. 发送消息 88
5. 关闭 producer 90
4.2.1 producer 程序实例 85
acks 91
buffer.memeory 92
compression.type 93
retries 93
batch.size 94
linger.ms 95
max.request.size 95
request.timeout.ms 95
4.2.2 producer 主要参数 91
4.2 构造 producer 85
4.3.1 分区策略 96
4.3.2 自定义分区机制 96
4.3 消息分区机制 96
4.4.1 默认序列化 99
4.4.2 自定义序列化 100
4.4 消息序列化 99
4.5 producer 拦截器 103
4.6.1 producer 端配置 107
4.6.2 broker 端配置 108
4.6 无消息丢失配置 106
4.7.1 Kafka 支持的压缩算法 109
4.7.2 算法性能比较与调优 109
4.7 消息压缩 108
4.8 多线程处理 111
4.9 旧版本 producer 112
4.10 本章小结 114
第4章 producer开发 82
5.1.1 消费者( consumer) 115
5.1.2 消费者组( consumer group) 117
5.1.3 位移( offset) 118
5.1.4 位移提交 119
5.1.5 consumer offsets 120
5.1.6 消费者组重平衡( consumer group 「ebalance) 122
5.1 consumer 概览 115
1. 构造 Properties 对象 123
2. 构造 KafkaConsumer 对象 125
3. 订阅 topic 列表 125
4. 获取消息 126
5. 处理 ConsumerRecord 对象 126
6. 关闭 consumer 127
5.2.1 consumer 程序实例 122
5.2.2 consumer 脚本命令 127
5.2.3 consumer 主要参数 128
5.2 构建 consumer 122
5.3.1 订阅 topic 列表 131
5.3.2 基于正则表达式订阅 topic 131
5.3 订阅 topic 131
5.4.1 poll 内部原理 131
5.4.2 poll 使用方法 132
5.4 消息轮询 131
5.5.1 consumer 位移 135
5.5.2 新版本 consumer 位移管理 136
5.5.3 自动提交与手动提交 137
5.5.4 旧版本 consumer 位移管理 139
5.5 位移管理 134
5.6.1 rebalance 概览 139
5.6.2 rebalance 触发条件 140
5.6.3 rebalance 分区分配 140
5.6.4 rebalance generation 142
5.6.5 rebalance 协议 142
5.6.6 rebalance 流程 143
5.6.7 rebalance 监昕器 144
5.6 重平衡( rebalance ) 139
5.7.1 默认解序列化器 146
5.7.2 自定义解序列化器 147
5.7 解序列化 146
5.8.1 每个线程维护一个 KafkaConsumer 149
5.8.2 单 KafkaConsumer 实例+多 worker 线程 151
5.8.3 两种方法对比 156
5.8 多线程消费实例 148
5.9 独立 consumer 157
5.10.1 概览 158
5.10.2 high-level consumer 159
5.10.3 low-level consumer 163
5.10 旧版本 consumer 158
5.11 本章小结 169
第5章 consumer开发 115
1. 消息格式 171
(1) V0 版本 173
(2) V1 版本 174
(3) V2 版本 178
2. 版本变迁 172
6.1.1 消息设计 171
1. 成员管理 182
2. ZooKeeper 路径 184
6.1.2 集群管理 182
1. follower 副本同步 185
2. ISR 设计 187
6.1.3 副本与 ISR 设计 185
1. LEO 更新机制 191
2. HW 更新机制 192
3. 图解 Kafka 备份原理 193
4. 基于水印备份机制的缺陷 197
5. 0.11.0.0 版本解决之道 199
6.1.4 水印 (watermark)和 leader epoch 190
1. Kafka 日志 201
2. 底层文件系统 203
3. 索引文件 204
4. 日志留存 206
5. 日志 compaction 207
6.1.5 日志存储设计 201
1. 协议设计 210
2. 请求/晌应结构 211
3. 常见请求类型 212
4. 请求处理流程 214
5. 版本与兼容性 216
6. Java API 构造请求实例 217
6.1.6 通信协议( wire protocol) 210
1. controller 概览 221
2. controller 管理状态 221
3. controller 职责 224
4. controller 与 broker 间的通信 227
5. controller 组件 228
6. 老版本 controller 设计缺陷 231
7. 新版本 controller 232
6.1.7 controller 设计 221
1. Reactor 模式 232
2. Kafka broker 请求处理 233
6.1.8 broker 请求处理 232
6.1 broker 端设计架构 170
1. ProducerRecord 235
2. RecordMetadata 236
6.2.1 producer 端基本数据结构 235
6.2.2 工作流程 236
6.2 producer 端设计 235
6.3.1 consumer group 状态机 239
阶段 1 :加入组。 242
阶段 2 :同步组状态信息。 243
6.3.2 group 管理协议 242
6.3.3 rebalance 场景剖析 243
6.3 consumer 端设计 239
6.4.1 消息交付语义 246
6.4.2 幕等性 producer (idempotent producer) 247
6.4.3 事务( transaction) 248
6.4 实现精确一次处理语义 246
6.5 本章小结 250
第6章 Kafka设计原理 170
7.1.1 启动 broker 251
1. 前台方式启动 broker 进程时 252
2. 后台方式启动 broker 进程时 253
7.1.2 关闭 broker 252
7.1.3 设置 JMX 端口 253
7.1.4 增加 broker 254
7.1.5 升级 broker 版本 254
7.1 集群管理 251
7.2.1 创建 topic 257
7.2.2 删除 topic 259
7.2.3 查询 topic 列表 260
7.2.4 查询 topic 详情 260
7.2.5 修改 topic 261
7.2 topic 管理 257
7.3.1 增加 topic 配置 262
7.3.2 查看 topic 配置 263
7.3.3 删除 topic 配置 264
7.3 topic 动态配置管理 262
7.4.1 查询消费者组 264
7.4.2 重设消费者组位移 267
7.4.3 删除消费者组 272
7.4.4 kafka-consumer-offset-checker 273
7.4 consumer 相关管理 264
7.5.1 preferred leader 选举 274
7.5.2 分区重分配 276
7.5.3 增加副本因子 279
7.5 topic 分区管理 274
7.6.1 kafka-console-producer 脚本 280
7.6.2 kafka-console-consumer 脚本 281
7.6.3 kafka-run-class 脚本 283
7.6.4 查看消息元数据 284
7.6.5 获取 topic 当前消息数 286
7.6.6 查询 __consumer_offsets 287
7.6 Kafka 常见脚本工具 280
7.7.1 服务器端 API 管理 topic 289
7.7.2 服务器端 API 管理位移 291
7.7.3 客户端 API 管理 topic 292
7.7.4 客户端 API 查看位移 296
7.7.5 0.11.0.0 版本客户端 API 297
7.7 API 方式管理集群 289
7.8.1 概要介绍 301
7.8.2 主要参数 302
7.8.3 使用实例 303
7.8 MirrorMaker 301
7.9.1 SASL+ACL 305
7.9.2 SSL 加密 313
7.9 Kafka 安全 304
7.10 常见问题 317
7.11 本章小结 319
第7章 管理Kafka集群 251
8.1 集群健康度检查 321
8.2.1 监控指标 322
8.2.2 指标分类 324
8.2.3 定义和查询 JMX 端口 325
8.2 MBean 监控 322
8.3.1 消息入站/出站速率 326
8.3.2 controller 存活 JMX 指标 327
8.3.3 备份不足的分区数 328
8.3.4 leader 分区数 328
8.3.5 ISR 变化速率 329
8.3.6 broker 1/0 工作处理线程空闲率 329
8.3.7 broker 网络处理线程空闲率 330
8.3.8 单个 topic 总字节数 330
8.3 broker 端 JMX 监控 326
8.4.1 producer 端 JMX 监控 330
8.4.2 consumer 端 JMX 监控 332
8.4 clients 端 JMX 监控 330
8.5.1 进程状态 334
8.5.2 GC 性能 334
8.5 JVM 监控 333
8.6 OS 监控 334
8.7.1 JmxTool 336
8.7.2 kafka-manager 336
8.7.3 Kafka Monitor 341
8.7.4 Kafka Offset Monitor 343
8.7.5 CruiseControl 345
8.7 主流监控框架 335
8.8 本章小结 346
第8章 监控Kafka集群 321
9.1 引言 347
9.2 确定调优目标 349
9.3.1 禁止 atime 更新 351
9.3.2 文件系统选择 351
9.3.3 设置 swapiness 352
9.3.4 JVM 设置 353
9.3.5 其他调优 353
9.3 集群基础调优 350
9.4 调优吞吐量 354
9.5 调优延时 358
9.6 调优持久性 359
9.7 调优可用性 363
9.8 本章小结 365
第9章 调优Kafka集群 347
10.1 引言 366
10.2.1 概要介绍 367
10.2.2 standalone Connect 369
10.2.3 distributed Connect 372
10.2.4 开发 connector 375
10.2 Kafka Connect 367
1. 什么是流处理 379
2. 流处理能做什么 379
10.3.1 流处理 378
10.3.2 Kafka Streams 核心概念 380
10.3.3 Kafka Streams 与其他框架的异同 384
10.3.4 Word Count 实例 385
10.3.5 Kafka Streams 应用开发 388
10.3.6 Kafka Streams 状态查询 398
10.3 Kafka Streams 378
10.4 本章小结 402
第10章 Kafka Connect与Kafka Streams 366
封底 402
Apache Kafka实战
0 条评论
回复 删除
下一页