注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑設(shè)計(jì)Apache Kafka實(shí)戰(zhàn)

Apache Kafka實(shí)戰(zhàn)

Apache Kafka實(shí)戰(zhàn)

定 價(jià):¥89.00

作 者: 胡夕 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

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


ISBN: 9787121337765 出版時(shí)間: 2018-05-01 包裝:
開(kāi)本: 頁(yè)數(shù): 字?jǐn)?shù):  

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

  本書(shū)是涵蓋Apache Kafka各方面的具有實(shí)踐指導(dǎo)意義的工具書(shū)和參考書(shū)。作者結(jié)合典型的使用場(chǎng)景,對(duì)Kafka整個(gè)技術(shù)體系進(jìn)行了較為全面的講解,以便讀者能夠舉一反三,直接應(yīng)用于實(shí)踐。同時(shí),本書(shū)還對(duì)Kafka的設(shè)計(jì)原理及其流式處理組件進(jìn)行了較深入的探討,并給出了翔實(shí)的案例。本書(shū)共分為10章:第1章全面介紹消息引擎系統(tǒng)以及Kafka的基本概念與特性,快速帶領(lǐng)讀者走進(jìn)Kafka的世界;第2章簡(jiǎn)要回顧了Apache Kafka的發(fā)展歷史;第3章詳細(xì)介紹了Kafka集群環(huán)境的搭建;第4、5章深入探討了Kafka客戶端的使用方法;第6章帶領(lǐng)讀者一覽Kafka內(nèi)部設(shè)計(jì)原理;第7~9章以實(shí)例的方式講解了Kafka集群的管理、監(jiān)控與調(diào)優(yōu);第10章介紹了Kafka新引入的流式處理組件。

作者簡(jiǎn)介

  胡夕,北航計(jì)算機(jī)碩士畢業(yè),目前就職于一家互聯(lián)網(wǎng)金融公司,開(kāi)源技術(shù)愛(ài)好者。曾任職于IBM、搜狗、微博等公司。對(duì)Kafka及其他開(kāi)源流處理技術(shù)與框架有深刻認(rèn)識(shí),同時(shí)也是國(guó)內(nèi)活躍的Kafka代碼貢獻(xiàn)者。對(duì)Kafka原理、運(yùn)行機(jī)制以及應(yīng)用開(kāi)發(fā)都有較深的研究。

圖書(shū)目錄

第1章 認(rèn)識(shí)Apache Kafka 1

1.1 Kafka快速入門(mén) 1

1.1.1 下載并解壓縮Kafka二進(jìn)制代碼壓縮包文件 2

1.1.2 啟動(dòng)服務(wù)器 3

1.1.3 創(chuàng)建topic 3

1.1.4 發(fā)送消息 4

1.1.5 消費(fèi)消息 4

1.2 消息引擎系統(tǒng) 5

1.2.1 消息設(shè)計(jì) 6

1.2.2 傳輸協(xié)議設(shè)計(jì) 6

1.2.3 消息引擎范型 6

1.2.4 Java消息服務(wù) 8

1.3 Kafka概要設(shè)計(jì) 8

1.3.1 吞吐量/延時(shí) 8

1.3.2 消息持久化 11

1.3.3 負(fù)載均衡和故障轉(zhuǎn)移 12

1.3.4 伸縮性 13

1.4 Kafka基本概念與術(shù)語(yǔ) 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使用場(chǎng)景 20

1.5.1 消息傳輸 20

1.5.2 網(wǎng)站行為日志追蹤 20

1.5.3 審計(jì)數(shù)據(jù)收集 20

1.5.4 日志收集 20

1.5.5 Event Sourcing 21

1.5.6 流式處理 21

1.6 本章小結(jié) 21

第2章 Kafka發(fā)展歷史 22

2.1 Kafka的歷史 22

2.1.1 背景 22

2.1.2 Kafka橫空出世 23

2.1.3 Kafka開(kāi)源 24

2.2 Kafka版本變遷 25

2.2.1 Kafka的版本演進(jìn) 25

2.2.2 Kafka的版本格式 26

2.2.3 新版本功能簡(jiǎn)介 26

2.2.4 舊版本功能簡(jiǎn)介 31

2.3 如何選擇Kafka版本 35

2.3.1 根據(jù)功能場(chǎng)景 35

2.3.2 根據(jù)客戶端使用場(chǎng)景 35

2.4 Kafka與Confluent 36

2.5 本章小結(jié) 37

第3章 Kafka線上環(huán)境部署 38

3.1 集群環(huán)境規(guī)劃 38

3.1.1 操作系統(tǒng)的選型 38

3.1.2 磁盤(pán)規(guī)劃 40

3.1.3 磁盤(pán)容量規(guī)劃 42

3.1.4 內(nèi)存規(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é)點(diǎn)Kafka集群 48

3.3 多節(jié)點(diǎn)環(huán)境安裝 49

3.3.1 安裝多節(jié)點(diǎn)ZooKeeper集群 50

3.3.2 安裝多節(jié)點(diǎn)Kafka 54

3.4 驗(yàn)證部署 55

3.4.1 測(cè)試topic創(chuàng)建與刪除 55

3.4.2 測(cè)試消息發(fā)送與消費(fèi) 57

3.4.3 生產(chǎn)者吞吐量測(cè)試 58

3.4.4 消費(fèi)者吞吐量測(cè)試 58

3.5 參數(shù)設(shè)置 59

3.5.1 broker端參數(shù) 59

3.5.2 topic級(jí)別參數(shù) 62

3.5.3 GC參數(shù) 63

3.5.4 JVM參數(shù) 64

3.5.5 OS參數(shù) 64

3.6 本章小結(jié) 65

第4章 producer開(kāi)發(fā) 66

4.1 producer概覽 66

4.2 構(gòu)造producer 69

4.2.1 producer程序?qū)嵗?nbsp;69

4.2.2 producer主要參數(shù) 75

4.3 消息分區(qū)機(jī)制 80

4.3.1 分區(qū)策略 80

4.3.2 自定義分區(qū)機(jī)制 80

4.4 消息序列化 83

4.4.1 默認(rèn)序列化 83

4.4.2 自定義序列化 84

4.5 producer攔截器 87

4.6 無(wú)消息丟失配置 90

4.6.1 producer端配置 91

4.6.2 broker端配置 92

4.7 消息壓縮 92

4.7.1 Kafka支持的壓縮算法 93

4.7.2 算法性能比較與調(diào)優(yōu) 93

4.8 多線程處理 95

4.9 舊版本producer 96

4.10 本章小結(jié) 98

第5章 consumer開(kāi)發(fā) 99

5.1 consumer概覽 99

5.1.1 消費(fèi)者(consumer) 99

5.1.2 消費(fèi)者組(consumer group) 101

5.1.3 位移(offset) 102

5.1.4 位移提交 103

5.1.5 __consumer_offsets 104

5.1.6 消費(fèi)者組重平衡(consumer group rebalance) 106

5.2 構(gòu)建consumer 106

5.2.1 consumer程序?qū)嵗?nbsp;106

5.2.2 consumer腳本命令 111

5.2.3 consumer主要參數(shù) 112

5.3 訂閱topic 115

5.3.1 訂閱topic列表 115

5.3.2 基于正則表達(dá)式訂閱topic 115

5.4 消息輪詢 115

5.4.1 poll內(nèi)部原理 115

5.4.2 poll使用方法 116

5.5 位移管理 118

5.5.1 consumer位移 119

5.5.2 新版本consumer位移管理 120

5.5.3 自動(dòng)提交與手動(dòng)提交 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)聽(tīng)器 128

5.7 解序列化 130

5.7.1 默認(rèn)解序列化器 130

5.7.2 自定義解序列化器 131

5.8 多線程消費(fèi)實(shí)例 132

5.8.1 每個(gè)線程維護(hù)一個(gè)KafkaConsumer 133

5.8.2 單KafkaConsumer實(shí)例+多worker線程 135

5.8.3 兩種方法對(duì)比 140

5.9 獨(dú)立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 本章小結(jié) 153

第6章 Kafka設(shè)計(jì)原理 154

6.1 broker端設(shè)計(jì)架構(gòu) 154

6.1.1 消息設(shè)計(jì) 155

6.1.2 集群管理 166

6.1.3 副本與ISR設(shè)計(jì) 169

6.1.4 水?。╳atermark)和leader epoch 174

6.1.5 日志存儲(chǔ)設(shè)計(jì) 185

6.1.6 通信協(xié)議(wire protocol) 194

6.1.7 controller設(shè)計(jì) 205

6.1.8 broker請(qǐng)求處理 216

6.2 producer端設(shè)計(jì) 219

6.2.1 producer端基本數(shù)據(jù)結(jié)構(gòu) 219

6.2.2 工作流程 220

6.3 consumer端設(shè)計(jì) 223

6.3.1 consumer group狀態(tài)機(jī) 223

6.3.2 group管理協(xié)議 226

6.3.3 rebalance場(chǎng)景剖析 227

6.4 實(shí)現(xiàn)精確一次處理語(yǔ)義 230

6.4.1 消息交付語(yǔ)義 230

6.4.2 冪等性producer(idempotent producer) 231

6.4.3 事務(wù)(transaction) 232

6.5 本章小結(jié) 234

第7章 管理Kafka集群 235

7.1 集群管理 235

7.1.1 啟動(dòng)broker 235

7.1.2 關(guān)閉broker 236

7.1.3 設(shè)置JMX端口 237

7.1.4 增加broker 238

7.1.5 升級(jí)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動(dòng)態(tài)配置管理 246

7.3.1 增加topic配置 246

7.3.2 查看topic配置 247

7.3.3 刪除topic配置 248

7.4 consumer相關(guān)管理 248

7.4.1 查詢消費(fèi)者組 248

7.4.2 重設(shè)消費(fèi)者組位移 251

7.4.3 刪除消費(fèi)者組 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常見(jiàn)腳本工具 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 查看消息元數(shù)據(jù) 268

7.6.5 獲取topic當(dāng)前消息數(shù) 270

7.6.6 查詢__consumer_offsets 271

7.7 API方式管理集群 273

7.7.1 服務(wù)器端API管理topic 273

7.7.2 服務(wù)器端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 主要參數(shù) 286

7.8.3 使用實(shí)例 287

7.9 Kafka安全 288

7.9.1 SASL+ACL 289

7.9.2 SSL加密 297

7.10 常見(jiàn)問(wèn)題 301

7.11 本章小結(jié) 304

第8章 監(jiān)控Kafka集群 305

8.1 集群健康度檢查 305

8.2 MBean監(jiān)控 306

8.2.1 監(jiān)控指標(biāo) 306

8.2.2 指標(biāo)分類(lèi) 308

8.2.3 定義和查詢JMX端口 309

8.3 broker端JMX監(jiān)控 310

8.3.1 消息入站/出站速率 310

8.3.2 controller存活JMX指標(biāo) 311

8.3.3 備份不足的分區(qū)數(shù) 312

8.3.4 leader分區(qū)數(shù) 312

8.3.5 ISR變化速率 313

8.3.6 broker I/O工作處理線程空閑率 313

8.3.7 broker網(wǎng)絡(luò)處理線程空閑率 314

8.3.8 單個(gè)topic總字節(jié)數(shù) 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 進(jìn)程狀態(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 本章小結(jié) 330

第9章 調(diào)優(yōu)Kafka集群 331

9.1 引言 331

9.2 確定調(diào)優(yōu)目標(biāo) 333

9.3 集群基礎(chǔ)調(diào)優(yōu) 334

9.3.1 禁止atime更新 335

9.3.2 文件系統(tǒng)選擇 335

9.3.3 設(shè)置swapiness 336

9.3.4 JVM設(shè)置 337

9.3.5 其他調(diào)優(yōu) 337

9.4 調(diào)優(yōu)吞吐量 338

9.5 調(diào)優(yōu)延時(shí) 342

9.6 調(diào)優(yōu)持久性 343

9.7 調(diào)優(yōu)可用性 347

9.8 本章小結(jié) 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 開(kāi)發(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實(shí)例 369

10.3.5 Kafka Streams應(yīng)用開(kāi)發(fā) 372

10.3.6 Kafka Streams狀態(tài)查詢 382

10.4 本章小結(jié) 386


本目錄推薦

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