定 價:¥89.00
作 者: | 胡夕 著 |
出版社: | 電子工業(yè)出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787121337765 | 出版時間: | 2018-05-01 | 包裝: | |
開本: | 頁數: | 字數: |
第1章 認識Apache Kafka 1
1.1 Kafka快速入門 1
1.1.1 下載并解壓縮Kafka二進制代碼壓縮包文件 2
1.1.2 啟動服務器 3
1.1.3 創(chuàng)建topic 3
1.1.4 發(fā)送消息 4
1.1.5 消費消息 4
1.2 消息引擎系統(tǒng) 5
1.2.1 消息設計 6
1.2.2 傳輸協(xié)議設計 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和partition 16
1.4.3 offset 17
1.4.4 replica 18
1.4.5 leader和follower 18
1.4.6 ISR 19
1.5 Kafka使用場景 20
1.5.1 消息傳輸 20
1.5.2 網站行為日志追蹤 20
1.5.3 審計數據收集 20
1.5.4 日志收集 20
1.5.5 Event Sourcing 21
1.5.6 流式處理 21
1.6 本章小結 21
第2章 Kafka發(fā)展歷史 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與Confluent 36
2.5 本章小結 37
第3章 Kafka線上環(huán)境部署 38
3.1 集群環(huán)境規(guī)劃 38
3.1.1 操作系統(tǒng)的選型 38
3.1.2 磁盤規(guī)劃 40
3.1.3 磁盤容量規(guī)劃 42
3.1.4 內存規(guī)劃 43
3.1.5 CPU規(guī)劃 43
3.1.6 帶寬規(guī)劃 44
3.1.7 典型線上環(huán)境配置 45
3.2 偽分布式環(huán)境安裝 45
3.2.1 安裝Java 46
3.2.2 安裝ZooKeeper 47
3.2.3 安裝單節(jié)點Kafka集群 48
3.3 多節(jié)點環(huán)境安裝 49
3.3.1 安裝多節(jié)點ZooKeeper集群 50
3.3.2 安裝多節(jié)點Kafka 54
3.4 驗證部署 55
3.4.1 測試topic創(chuàng)建與刪除 55
3.4.2 測試消息發(fā)送與消費 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開發(fā) 66
4.1 producer概覽 66
4.2 構造producer 69
4.2.1 producer程序實例 69
4.2.2 producer主要參數 75
4.3 消息分區(qū)機制 80
4.3.1 分區(qū)策略 80
4.3.2 自定義分區(qū)機制 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 算法性能比較與調優(yōu) 93
4.8 多線程處理 95
4.9 舊版本producer 96
4.10 本章小結 98
第5章 consumer開發(fā) 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_offsets 104
5.1.6 消費者組重平衡(consumer group rebalance) 106
5.2 構建consumer 106
5.2.1 consumer程序實例 106
5.2.2 consumer腳本命令 111
5.2.3 consumer主要參數 112
5.3 訂閱topic 115
5.3.1 訂閱topic列表 115
5.3.2 基于正則表達式訂閱topic 115
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觸發(fā)條件 124
5.6.3 rebalance分區(qū)分配 124
5.6.4 rebalance generation 126
5.6.5 rebalance協(xié)議 126
5.6.6 rebalance流程 127
5.6.7 rebalance監(jiān)聽器 128
5.7 解序列化 130
5.7.1 默認解序列化器 130
5.7.2 自定義解序列化器 131
5.8 多線程消費實例 132
5.8.1 每個線程維護一個KafkaConsumer 133
5.8.2 單KafkaConsumer實例+多worker線程 135
5.8.3 兩種方法對比 140
5.9 獨立consumer 141
5.10 舊版本consumer 142
5.10.1 概覽 142
5.10.2 high-level consumer 143
5.10.3 low-level consumer 147
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 水?。╳atermark)和leader epoch 174
6.1.5 日志存儲設計 185
6.1.6 通信協(xié)議(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狀態(tài)機 223
6.3.2 group管理協(xié)議 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 啟動broker 235
7.1.2 關閉broker 236
7.1.3 設置JMX端口 237
7.1.4 增加broker 238
7.1.5 升級broker版本 238
7.2 topic管理 241
7.2.1 創(chuàng)建topic 241
7.2.2 刪除topic 243
7.2.3 查詢topic列表 244
7.2.4 查詢topic詳情 244
7.2.5 修改topic 245
7.3 topic動態(tài)配置管理 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-checker 257
7.5 topic分區(qū)管理 258
7.5.1 preferred leader選舉 258
7.5.2 分區(qū)重分配 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_offsets 271
7.7 API方式管理集群 273
7.7.1 服務器端API管理topic 273
7.7.2 服務器端API管理位移 275
7.7.3 客戶端API管理topic 276
7.7.4 客戶端API查看位移 280
7.7.5 0.11.0.0版本客戶端API 281
7.8 MirrorMaker 285
7.8.1 概要介紹 285
7.8.2 主要參數 286
7.8.3 使用實例 287
7.9 Kafka安全 288
7.9.1 SASL+ACL 289
7.9.2 SSL加密 297
7.10 常見問題 301
7.11 本章小結 304
第8章 監(jiān)控Kafka集群 305
8.1 集群健康度檢查 305
8.2 MBean監(jiān)控 306
8.2.1 監(jiān)控指標 306
8.2.2 指標分類 308
8.2.3 定義和查詢JMX端口 309
8.3 broker端JMX監(jiān)控 310
8.3.1 消息入站/出站速率 310
8.3.2 controller存活JMX指標 311
8.3.3 備份不足的分區(qū)數 312
8.3.4 leader分區(qū)數 312
8.3.5 ISR變化速率 313
8.3.6 broker I/O工作處理線程空閑率 313
8.3.7 broker網絡處理線程空閑率 314
8.3.8 單個topic總字節(jié)數 314
8.4 clients端JMX監(jiān)控 314
8.4.1 producer端JMX監(jiān)控 314
8.4.2 consumer端JMX監(jiān)控 316
8.5 JVM監(jiān)控 317
8.5.1 進程狀態(tài) 318
8.5.2 GC性能 318
8.6 OS監(jiān)控 318
8.7 主流監(jiān)控框架 319
8.7.1 JmxTool 320
8.7.2 kafka-manager 320
8.7.3 Kafka Monitor 325
8.7.4 Kafka Offset Monitor 327
8.7.5 CruiseControl 329
8.8 本章小結 330
第9章 調優(yōu)Kafka集群 331
9.1 引言 331
9.2 確定調優(yōu)目標 333
9.3 集群基礎調優(yōu) 334
9.3.1 禁止atime更新 335
9.3.2 文件系統(tǒng)選擇 335
9.3.3 設置swapiness 336
9.3.4 JVM設置 337
9.3.5 其他調優(yōu) 337
9.4 調優(yōu)吞吐量 338
9.5 調優(yōu)延時 342
9.6 調優(yōu)持久性 343
9.7 調優(yōu)可用性 347
9.8 本章小結 349
第10章 Kafka Connect與Kafka Streams 350
10.1 引言 350
10.2 Kafka Connect 351
10.2.1 概要介紹 351
10.2.2 standalone Connect 353
10.2.3 distributed Connect 356
10.2.4 開發(fā)connector 359
10.3 Kafka Streams 362
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應用開發(fā) 372
10.3.6 Kafka Streams狀態(tài)查詢 382
10.4 本章小結 386