注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫(kù)Kafka權(quán)威指南(第2版)

Kafka權(quán)威指南(第2版)

Kafka權(quán)威指南(第2版)

定 價(jià):¥119.80

作 者: [美] 格溫·沙皮拉,[美] 托德·帕利諾
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787115601421 出版時(shí)間: 2022-11-01 包裝: 平裝
開(kāi)本: 128開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)介紹Kafka的技術(shù)原理和應(yīng)用技巧。內(nèi)容包括如何安裝和配置Kafka、如何使用Kafka API、Kafka的設(shè)計(jì)原則和可靠性保證,以及Kafka的一些架構(gòu)細(xì)節(jié),如復(fù)制協(xié)議、控制器和存儲(chǔ)層。本書(shū)列舉了一些非常流行的Kafka應(yīng)用場(chǎng)景,比如基于事件驅(qū)動(dòng)的微服務(wù)系統(tǒng)的消息總線、流式處理應(yīng)用程序和大規(guī)模數(shù)據(jù)管道。通過(guò)學(xué)習(xí)本書(shū),你不僅能夠深入理解這項(xiàng)大數(shù)據(jù)核心技術(shù),還能夠?qū)⑺鶎W(xué)知識(shí)付諸實(shí)踐,在生產(chǎn)環(huán)境中更好地運(yùn)行Kafka,并基于它構(gòu)建穩(wěn)健的高性能應(yīng)用程序。

作者簡(jiǎn)介

  【作者介紹】格溫·沙皮拉(Gwen Shapira)是Kafka項(xiàng)目的Committer和PMC成員,也是Confluent的工程主管,領(lǐng)導(dǎo)云原生Kafka團(tuán)隊(duì),致力于打造更具彈性和可伸縮性的Kafka云服務(wù)。托德·帕利諾(Todd Palino)是LinkedIn的站點(diǎn)可靠性工程師,他開(kāi)發(fā)了Kafka消費(fèi)者監(jiān)控工具Burrow。拉吉尼·西瓦拉姆(Rajini Sivaram)是Kafka項(xiàng)目的Committer和PMC成員。她在Confluent為Kafka設(shè)計(jì)和開(kāi)發(fā)跨集群復(fù)制和安全功能。克里特·佩蒂(Krit Petty)是LinkedIn的Kafka站點(diǎn)可靠性工程經(jīng)理,曾負(fù)責(zé)將LinkedIn的大規(guī)模Kafka集群遷移到微軟的Azure云?!咀g者介紹】薛命燈,畢業(yè)于廈門(mén)大學(xué)軟件學(xué)院,十余年軟件開(kāi)發(fā)和架構(gòu)經(jīng)驗(yàn),InfoQ高級(jí)社區(qū)編輯。另譯有《硅谷革命》《生產(chǎn)微服務(wù)》等書(shū)。微信公眾號(hào)CodeDeep。

圖書(shū)目錄

本書(shū)贊譽(yù) xvii
第 2 版序 xix
第 1 版序 xxi
前言 xxiii
第 1 章 初識(shí)Kafka 1
1.1 發(fā)布與訂閱消息系統(tǒng) 1
1.1.1 如何開(kāi)始 2
1.1.2 獨(dú)立的隊(duì)列系統(tǒng) 3
1.2 Kafka登場(chǎng) 3
1.2.1 消息和批次 4
1.2.2 模式 4
1.2.3 主題和分區(qū) 4
1.2.4 生產(chǎn)者和消費(fèi)者 5
1.2.5 broker和集群 6
1.2.6 多集群 7
1.3 為什么選擇Kafka 8
1.3.1 多個(gè)生產(chǎn)者 8
1.3.2 多個(gè)消費(fèi)者 8
1.3.3 基于磁盤(pán)的數(shù)據(jù)保留 9
1.3.4 伸縮性 9
1.3.5 高性能 9
1.3.6 平臺(tái)特性 9
1.4 數(shù)據(jù)生態(tài)系統(tǒng) 9
1.5 起源故事 11
1.5.1 LinkedIn的問(wèn)題 11
1.5.2 Kafka的誕生 12
1.5.3 走向開(kāi)源 12
1.5.4 商業(yè)化 13
1.5.5 命名 13
1.6 開(kāi)始Kafka之旅 13
第 2 章 安裝Kafka 14
2.1 環(huán)境配置 14
2.1.1 選擇操作系統(tǒng) 14
2.1.2 安裝Java 14
2.1.3 安裝ZooKeeper 15
2.2 安裝broker 17
2.3 配置broker 18
2.3.1 常規(guī)配置參數(shù) 18
2.3.2 主題的默認(rèn)配置 20
2.4 選擇硬件 24
2.4.1 磁盤(pán)吞吐量 25
2.4.2 磁盤(pán)容量 25
2.4.3 內(nèi)存 25
2.4.4 網(wǎng)絡(luò) 25
2.4.5 CPU 26
2.5 云端的Kafka 26
2.5.1 微軟Azure 26
2.5.2 AWS 26
2.6 配置Kafka集群 27
2.6.1 需要多少個(gè)broker 27
2.6.2 broker配置 28
2.6.3 操作系統(tǒng)調(diào)優(yōu) 28
2.7 生產(chǎn)環(huán)境的注意事項(xiàng) 31
2.7.1 垃圾回收器選項(xiàng) 31
2.7.2 數(shù)據(jù)中心布局 32
2.7.3 共享ZooKeeper 32
2.8 小結(jié) 33
第 3 章 Kafka生產(chǎn)者——向Kafka寫(xiě)入數(shù)據(jù) 34
3.1 生產(chǎn)者概覽 35
3.2 創(chuàng)建 Kafka生產(chǎn)者 36
3.3 發(fā)送消息到Kafka 37
3.3.1 同步發(fā)送消息 38
3.3.2 異步發(fā)送消息 39
3.4 生產(chǎn)者配置 39
3.4.1 client.id 40
3.4.2 acks 40
3.4.3 消息傳遞時(shí)間 41
3.4.4 linger.ms 43
3.4.5 buffer.memory 43
3.4.6 compression.type 43
3.4.7 batch.size 43
3.4.8 max.in.flight.requests.per.connection 43
3.4.9 max.request.size 44
3.4.10 receive.buffer.bytes和send.buffer.bytes 44
3.4.11 enable.idempotence 44
3.5 序列化器 45
3.5.1 自定義序列化器 45
3.5.2 使用Avro序列化數(shù)據(jù) 47
3.5.3 在Kafka中使用Avro記錄 48
3.6 分區(qū) 51
3.7 標(biāo)頭 52
3.8 攔截器 53
3.9 配額和節(jié)流 54
3.10 小結(jié) 56
第 4 章 Kafka消費(fèi)者——從Kafka讀取數(shù)據(jù) 57
4.1 Kafka消費(fèi)者相關(guān)概念 57
4.1.1 消費(fèi)者和消費(fèi)者群組 57
4.1.2 消費(fèi)者群組和分區(qū)再均衡 60
4.1.3 群組固定成員 62
4.2 創(chuàng)建 Kafka消費(fèi)者 63
4.3 訂閱主題 63
4.4 輪詢 64
4.5 配置消費(fèi)者 66
4.5.1 fetch.min.bytes 66
4.5.2 fetch.max.wait.ms 66
4.5.3 fetch.max.bytes 66
4.5.4 max.poll.records 67
4.5.5 max.partition.fetch.bytes 67
4.5.6 session.timeout.ms和heartbeat.interval.ms 67
4.5.7 max.poll.interval.ms 67
4.5.8 default.api.timeout.ms 68
4.5.9 request.timeout.ms 68
4.5.10 auto.offset.reset 68
4.5.11 enable.auto.commit 68
4.5.12 partition.assignment.strategy 68
4.5.13 client.id 69
4.5.14 client.rack 69
4.5.15 group.instance.id 70
4.5.16 receive.buffer.bytes和send.buffer.bytes 70
4.5.17 offsets.retention.minutes 70
4.6 提交和偏移量 70
4.6.1 自動(dòng)提交 71
4.6.2 提交當(dāng)前偏移量 72
4.6.3 異步提交 73
4.6.4 同步和異步組合提交 74
4.6.5 提交特定的偏移量 75
4.7 再均衡監(jiān)聽(tīng)器 76
4.8 從特定偏移量位置讀取記錄 78
4.9 如何退出 79
4.10 反序列化器 80
4.10.1 自定義反序列化器 81
4.10.2 在消費(fèi)者里使用Avro反序列器 83
4.11 獨(dú)立的消費(fèi)者:為什么以及怎樣使用不屬于任何群組的消費(fèi)者 83
4.12 小結(jié) 84
第 5 章 編程式管理Kafka 85
5.1 AdminClient概覽 85
5.1.1 異步和最終一致性API 86
5.1.2 配置參數(shù) 86
5.1.3 扁平的結(jié)構(gòu) 86
5.1.4 額外的話 86
5.2 AdminClient生命周期:創(chuàng)建、配置和關(guān)閉 87
5.2.1 client.dns.lookup 87
5.2.2 request.timeout.ms 88
5.3 基本的主題管理操作 88
5.4 配置管理 91
5.5 消費(fèi)者群組管理 92
5.5.1 查看消費(fèi)者群組 93
5.5.2 修改消費(fèi)者群組 94
5.6 集群元數(shù)據(jù) 95
5.7 高級(jí)的管理操作 96
5.7.1 為主題添加分區(qū) 96
5.7.2 從主題中刪除消息 96
5.7.3 首領(lǐng)選舉 97
5.7.4 重新分配副本 98
5.8 測(cè)試 99
5.9 小結(jié) 101
第 6 章 深入Kafka 102
6.1 集群的成員關(guān)系 102
6.2 控制器 103
6.3 復(fù)制 105
6.4 處理請(qǐng)求 107
6.4.1 生產(chǎn)請(qǐng)求 109
6.4.2 獲取請(qǐng)求 109
6.4.3 其他請(qǐng)求 111
6.5 物理存儲(chǔ) 112
6.5.1 分層存儲(chǔ) 113
6.5.2 分區(qū)的分配 114
6.5.3 文件管理 115
6.5.4 文件格式 115
6.5.5 索引 117
6.5.6 壓實(shí) 117
6.5.7 壓實(shí)的工作原理 118
6.5.8 被刪除的事件 119
6.5.9 何時(shí)會(huì)壓實(shí)主題 119
6.6 小結(jié) 120
第 7 章 可靠的數(shù)據(jù)傳遞 121
7.1 可靠性保證 121
7.2 復(fù)制 122
7.3 broker配置 123
7.3.1 復(fù)制系數(shù) 123
7.3.2 不徹底的首領(lǐng)選舉 125
7.3.3 最少同步副本 126
7.3.4 保持副本同步 126
7.3.5 持久化到磁盤(pán) 126
7.4 在可靠的系統(tǒng)中使用生產(chǎn)者 127
7.4.1 發(fā)送確認(rèn) 127
7.4.2 配置生產(chǎn)者的重試參數(shù) 128
7.4.3 額外的錯(cuò)誤處理 129
7.5 在可靠的系統(tǒng)中使用消費(fèi)者 129
7.5.1 消費(fèi)者的可靠性配置 130
7.5.2 手動(dòng)提交偏移量 130
7.6 驗(yàn)證系統(tǒng)可靠性 132
7.6.1 驗(yàn)證配置 132
7.6.2 驗(yàn)證應(yīng)用程序 133
7.6.3 在生產(chǎn)環(huán)境中監(jiān)控可靠性 133
7.7 小結(jié) 134
第 8 章 精確一次性語(yǔ)義 135
8.1 冪等生產(chǎn)者 135
8.1.1 冪等生產(chǎn)者的工作原理 136
8.1.2 冪等生產(chǎn)者的局限性 137
8.1.3 如何使用冪等生產(chǎn)者 138
8.2 事務(wù) 138
8.2.1 事務(wù)的應(yīng)用場(chǎng)景 139
8.2.2 事務(wù)可以解決哪些問(wèn)題 139
8.2.3 事務(wù)是如何保證精確一次性的 140
8.2.4 事務(wù)不能解決哪些問(wèn)題 141
8.2.5 如何使用事務(wù) 143
8.2.6 事務(wù)ID和隔離 145
8.2.7 事務(wù)的工作原理 146
8.3 事務(wù)的性能 148
8.4 小結(jié) 148
第 9 章 構(gòu)建數(shù)據(jù)管道 149
9.1 構(gòu)建數(shù)據(jù)管道時(shí)需要考慮的問(wèn)題 150
9.1.1 及時(shí)性 150
9.1.2 可靠性 150
9.1.3 高吞吐量和動(dòng)態(tài)吞吐量 151
9.1.4 數(shù)據(jù)格式 151
9.1.5 轉(zhuǎn)換 152
9.1.6 安全性 152
9.1.7 故障處理 153
9.1.8 耦合性和靈活性 153
9.2 何時(shí)使用Connect API或客戶端API 154
9.3 Kafka Connect 154
9.3.1 運(yùn)行Connect 155
9.3.2 連接器示例:文件數(shù)據(jù)源和文件數(shù)據(jù)池 157
9.3.3 連接器示例:從MySQL到ElasticSearch 159
9.3.4 單一消息轉(zhuǎn)換 164
9.3.5 深入理解Connect 167
9.4 Connect之外的選擇 169
9.4.1 其他數(shù)據(jù)存儲(chǔ)系統(tǒng)的數(shù)據(jù)攝入框架 169
9.4.2 基于圖形界面的ETL工具 169
9.4.3 流式處理框架 170
9.5 小結(jié) 170
第 10 章 跨集群數(shù)據(jù)鏡像 171
10.1 跨集群鏡像的應(yīng)用場(chǎng)景 171
10.2 多集群架構(gòu) 172
10.2.1 跨數(shù)據(jù)中心通信的一些現(xiàn)實(shí)情況 173
10.2.2 星型架構(gòu) 173
10.2.3 雙活架構(gòu) 175
10.2.4 主備架構(gòu) 176
10.2.5 延展集群 180
10.3 MirrorMaker 181
10.3.1 配置MirrorMaker 183
10.3.2 多集群復(fù)制拓?fù)? 184
10.3.3 保護(hù)MirrorMaker 185
10.3.4 在生產(chǎn)環(huán)境中部署MirrorMaker 186
10.3.5 MirrorMaker調(diào)優(yōu) 189
10.4 其他跨集群鏡像方案 190
10.4.1 Uber的uReplicator 190
10.4.2 LinkedIn的Brooklin 191
10.4.3 Confluent的跨數(shù)據(jù)中心鏡像解決方案 191
10.5 小結(jié) 193
第 11 章 保護(hù)Kafka 194
11.1 鎖住 Kafka 194
11.2 安全協(xié)議 196
11.3 身份驗(yàn)證 197
11.3.1 SSL 198
11.3.2 SASL 201
11.3.3 重新認(rèn)證 210
11.3.4 安全更新不停機(jī) 211
11.4 加密 212
11.5 授權(quán) 214
11.5.1 AclAuthorizer 214
11.5.2 自定義授權(quán) 217
11.5.3 安全方面的考慮 219
11.6 審計(jì) 219
11.7 保護(hù)ZooKeeper 220
11.7.1 SASL 220
11.7.2 SSL 221
11.7.3 授權(quán) 221
11.8 保護(hù)平臺(tái) 222
11.9 小結(jié) 223
第 12 章 管理Kafka 225
12.1 主題操作 225
12.1.1 創(chuàng)建新主題 226
12.1.2 列出集群中的所有主題 227
12.1.3 列出主題詳情 227
12.1.4 增加分區(qū) 228
12.1.5 減少分區(qū) 229
12.1.6 刪除主題 229
12.2 消費(fèi)者群組 230
12.2.1 列出并描述消費(fèi)者群組信息 230
12.2.2 刪除消費(fèi)者群組 231
12.2.3 偏移量管理 232
12.3 動(dòng)態(tài)配置變更 233
12.3.1 覆蓋主題的默認(rèn)配置 233
12.3.2 覆蓋客戶端和用戶的默認(rèn)配置 234
12.3.3 覆蓋broker的默認(rèn)配置 235
12.3.4 查看被覆蓋的配置 236
12.3.5 移除被覆蓋的配置 236
12.4 生產(chǎn)和消費(fèi) 236
12.4.1 控制臺(tái)生產(chǎn)者 237
12.4.2 控制臺(tái)消費(fèi)者 238
12.5 分區(qū)管理 241
12.5.1 首選首領(lǐng)選舉 241
12.5.2 修改分區(qū)的副本 242
12.5.3 轉(zhuǎn)儲(chǔ)日志片段 246
12.5.4 副本驗(yàn)證 248
12.6 其他工具 248
12.7 不安全的操作 249
12.7.1 移動(dòng)集群控制器 249
12.7.2 移除待刪除的主題 249
12.7.3 手動(dòng)刪除主題 250
12.8 小結(jié) 250
第 13 章 監(jiān)控Kafka 251
13.1 指標(biāo)基礎(chǔ) 251
13.1.1 指標(biāo)來(lái)自哪里 251
13.1.2 需要哪些指標(biāo) 252
13.1.3 應(yīng)用程序健康檢測(cè) 253
13.2 服務(wù)級(jí)別目標(biāo) 254
13.2.1 服務(wù)級(jí)別定義 254
13.2.2 哪些指標(biāo)是好的SLI 255
13.2.3 將SLO用于告警 255
13.3 broker的指標(biāo) 256
13.3.1 診斷集群?jiǎn)栴} 257
13.3.2 非同步分區(qū)的藝術(shù) 257
13.3.3 broker指標(biāo) 261
13.3.4 主題的指標(biāo)和分區(qū)的指標(biāo) 268
13.3.5 Java虛擬機(jī)監(jiān)控 269
13.3.6 操作系統(tǒng)監(jiān)控 270
13.3.7 日志 272
13.4 客戶端監(jiān)控 272
13.4.1 生產(chǎn)者指標(biāo) 272
13.4.2 消費(fèi)者指標(biāo) 274
13.4.3 配額 276
13.5 滯后監(jiān)控 277
13.6 端到端監(jiān)控 277
13.7 小結(jié) 278
第 14 章 流式處理 279
14.1 什么是流式處理 280
14.2 流式處理相關(guān)概念 282
14.2.1 拓?fù)? 282
14.2.2 時(shí)間 282
14.2.3 狀態(tài) 284
14.2.4 流和表 284
14.2.5 時(shí)間窗口 285
14.2.6 處理保證 287
14.3 流式處理設(shè)計(jì)模式 287
14.3.1 單事件處理 287
14.3.2 使用本地狀態(tài) 288
14.3.3 多階段處理和重分區(qū) 289
14.3.4 使用外部查找:流和表的連接 290
14.3.5 表與表的連接 291
14.3.6 流與流的連接 291
14.3.7 亂序事件 292
14.3.8 重新處理 293
14.3.9 交互式查詢 294
14.4 Streams示例 294
14.4.1 字?jǐn)?shù)統(tǒng)計(jì) 294
14.4.2 股票市場(chǎng)統(tǒng)計(jì) 296
14.4.3 填充點(diǎn)擊事件流 298
14.5 Streams架構(gòu)概覽 300
14.5.1 構(gòu)建拓?fù)? 300
14.5.2 優(yōu)化拓?fù)? 301
14.5.3 測(cè)試拓?fù)? 301
14.5.4 擴(kuò)展拓?fù)? 302
14.5.5 在故障中存活下來(lái) 304
14.6 流式處理應(yīng)用場(chǎng)景 305
14.7 如何選擇流式處理框架 306
14.8 小結(jié) 307
附錄 A 在其他操作系統(tǒng)中安裝Kafka 309
附錄 B 其他Kafka工具 314

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)