
掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗證碼 ” ,獲取驗證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請在下載后24小時內(nèi)刪除。如果喜歡,請購買正版!
一.資料圖片
二.資料簡介
《Paxos到Zookeeper:分布式一致性原理與實踐》從分布式一致性的理論出發(fā),向讀者簡要介紹幾種典型的分布式一致性協(xié)議,以及解決分布式一致性問題的思路,其中重點講解了Paxos和ZAB協(xié)議。同時,本書深入介紹了分布式一致性問題的工業(yè)解決方案——ZooKeeper,并著重向讀者展示這一分布式協(xié)調(diào)框架的使用方法、內(nèi)部實現(xiàn)及運維技巧,旨在幫助讀者全面了解ZooKeeper,并更好地使用和運維ZooKeeper。全書共8章,分為五部分:第一部分(第1章)主要介紹了計算機系統(tǒng)從集中式向分布式系統(tǒng)演變過程中面臨的挑戰(zhàn),并簡要介紹了ACID、CAP和BASE等經(jīng)典分布式理論;第二部分(第2~4章)介紹了2PC、3PC和Paxos三種分布式一致性協(xié)議,并著重講解了ZooKeeper中使用的一致性協(xié)議——ZAB協(xié)議;第三部分(第5~6章)介紹了ZooKeeper的使用方法,包括客戶端API的使用以及對ZooKeeper服務(wù)的部署與運行,并結(jié)合真實的分布式應(yīng)用場景,總結(jié)了ZooKeeper使用的最佳實踐;第四部分(第7章)對ZooKeeper的架構(gòu)設(shè)計和實現(xiàn)原理進(jìn)行了深入分析,包含系統(tǒng)模型、Leader選舉、客戶端與服務(wù)端的工作原理、請求處理,以及服務(wù)器角色的工作流程和數(shù)據(jù)存儲等;第五部分(第8章)介紹了ZooKeeper的運維實踐,包括配置詳解和監(jiān)控管理等,重點講解了如何構(gòu)建一個高可用的ZooKeeper服務(wù)。
三.作者簡介
倪超,阿里巴巴集團(tuán)高級研發(fā)工程師,國家認(rèn)證系統(tǒng)分析師,畢業(yè)于杭州電子科技大學(xué)計算機系。2010年加入阿里巴巴中間件團(tuán)隊擔(dān)任研發(fā)實習(xí)崗位,一直從事ZooKeeper的開發(fā)與運維工作,從中學(xué)習(xí)與總結(jié)了不少分布式一致性相關(guān)的理論與實踐經(jīng)驗,尤其對ZooKeeper及其相關(guān)技術(shù)有非常深入的研究。目前在中間件團(tuán)隊專家組任職產(chǎn)品經(jīng)理,負(fù)責(zé)分布式產(chǎn)品的產(chǎn)品化和云計算化改造工作。
四.資料目錄
第1章分布式架構(gòu) 1
1.1 從集中式到分布式 1
1.1.1 集中式的特點 2
1.1.2 分布式的特點 2
1.1.3 分布式環(huán)境的各種問題 4
1.2 從ACID到CAP/BASE 5
1.2.1 ACID 5
1.2.2 分布式事務(wù) 8
1.2.3 CAP和BASE理論 9
小結(jié) 15
第2章一致性協(xié)議 17
2.1 2PC與3PC 17
2.1.1 2PC 17
2.1.2 3PC 21
2.2 Paxos算法 24
2.2.1 追本溯源 25
2.2.2 Paxos理論的誕生 26
2.2.3 Paxos算法詳解 27
小結(jié) 37
第3章Paxos的工程實踐 39
3.1 Chubby 39
3.1.1 概述 39
3.1.2 應(yīng)用場景 40
3.1.3 設(shè)計目標(biāo) 40
3.1.4 Chubby技術(shù)架構(gòu) 43
3.1.5 Paxos協(xié)議實現(xiàn) 52
3.2 Hypertable 55
3.2.1 概述 55
3.2.2 算法實現(xiàn) 57
小結(jié) 58
第4章ZooKeeper與Paxos 59
4.1 初識ZooKeeper 59
4.1.1 ZooKeeper介紹 59
4.1.2 ZooKeeper從何而來 62
4.1.3 ZooKeeper的基本概念 62
4.1.4 為什么選擇ZooKeeper 64
4.2 ZooKeeper的ZAB協(xié)議 65
4.2.1 ZAB協(xié)議 65
4.2.2 協(xié)議介紹 66
4.2.3 深入ZAB協(xié)議 71
4.2.4 ZAB與Paxos算法的聯(lián)系與區(qū)別 77
小結(jié) 78
第5章使用ZooKeeper 79
5.1 部署與運行 79
5.1.1 系統(tǒng)環(huán)境 79
5.1.2 集群與單機 80
5.1.3 運行服務(wù) 84
5.2 客戶端腳本 88
5.2.1 創(chuàng)建 88
5.2.2 讀取 89
5.2.3 更新 90
5.2.4 刪除 91
5.3 Java客戶端API使用 91
5.3.1 創(chuàng)建會話 91
5.3.2 創(chuàng)建節(jié)點 95
5.3.3 刪除節(jié)點 99
5.3.4 讀取數(shù)據(jù) 100
5.3.5 更新數(shù)據(jù) 109
5.3.6 檢測節(jié)點是否存在 113
5.3.7 權(quán)限控制 115
5.4 開源客戶端 120
5.4.1 ZkClient 120
5.4.2 Curator 130
小結(jié) 162
第6章ZooKeeper的典型應(yīng)用場景 163
6.1 典型應(yīng)用場景及實現(xiàn)注 163
6.1.1 數(shù)據(jù)發(fā)布/訂閱 164
6.1.2 負(fù)載均衡 166
6.1.3 命名服務(wù) 170
6.1.4 分布式協(xié)調(diào)/通知 173
6.1.5 集群管理 179
6.1.6 Master選舉 185
6.1.7 分布式鎖 188
6.1.8 分布式隊列 194
小結(jié) 197
6.2 ZooKeeper在大型分布式系統(tǒng)中的應(yīng)用 197
6.2.1 Hadoop 198
6.2.2 HBase 203
6.2.3 Kafka 207
6.3 ZooKeeper在阿里巴巴的實踐與應(yīng)用 213
6.3.1 案例一消息中間件:Metamorphosis 213
6.3.2 案例二 RPC服務(wù)框架:Dubbo 217
6.3.3 案例三基于MySQL Binlog的增量訂閱和消費組件:Canal 219
6.3.4 案例四分布式數(shù)據(jù)庫同步系統(tǒng):Otter 223
6.3.5 案例五輕量級分布式通用搜索平臺:終搜 226
6.3.6 案例六實時計算引擎:JStorm 238
小結(jié) 242
第7章ZooKeeper技術(shù)內(nèi)幕 243
7.1 系統(tǒng)模型 243
7.1.1 數(shù)據(jù)模型 243
7.1.2 節(jié)點特性 244
7.1.3 版本——保證分布式數(shù)據(jù)原子性操作 246
7.1.4 Watcher——數(shù)據(jù)變更的通知 249
7.1.5 ACL——保障數(shù)據(jù)的安全 265
7.2 序列化與協(xié)議 272
7.2.1 Jute介紹 272
7.2.2 使用Jute進(jìn)行序列化 273
7.2.3 深入Jute 275
7.2.4 通信協(xié)議 277
7.3 客戶端 284
7.3.1 一次會話的創(chuàng)建過程 286
7.3.2 服務(wù)器地址列表 289
7.3.3 ClientCnxn:網(wǎng)絡(luò)I/O 295
7.4 會話 298
7.4.1 會話狀態(tài) 298
7.4.2 會話創(chuàng)建 299
7.4.3 會話管理 304
7.4.4 會話清理 307
7.4.5 重連 309
7.5 服務(wù)器啟動 311
7.5.1 單機版服務(wù)器啟動 312
7.5.2 集群版服務(wù)器啟動 315
7.6 Leader選舉 321
7.6.1 Leader選舉概述 321
7.6.2 Leader選舉的算法分析 323
7.6.3 Leader選舉的實現(xiàn)細(xì)節(jié) 328
7.7 各服務(wù)器角色介紹 335
7.7.1 Leader 335
7.7.2 Follower 338
7.7.3 Observer 339
7.7.4 集群間消息通信 339
7.8 請求處理 342
7.8.1 會話創(chuàng)建請求 343
7.8.2 SetData請求 351
7.8.3 事務(wù)請求轉(zhuǎn)發(fā) 354
7.8.4 GetData請求 355
7.9 數(shù)據(jù)與存儲 356
7.9.1 內(nèi)存數(shù)據(jù) 356
7.9.2 事務(wù)日志 358
7.9.3 snapshot——數(shù)據(jù)快照 364
7.9.4 初始化 368
7.9.5 數(shù)據(jù)同步 372
小結(jié) 376
第8章ZooKeeper運維 379
8.1 配置詳解 379
8.1.1 基本配置 379
8.1.2 高級配置 380
8.2 四字命令 384
8.3 JMX 390
8.3.1 開啟遠(yuǎn)程JMX 390
8.3.2 通過JConsole連接ZooKeeper 391
8.4 監(jiān)控 397
8.4.1 實時監(jiān)控 397
8.4.2 數(shù)據(jù)統(tǒng)計 398
8.5 構(gòu)建一個高可用的集群 398
8.5.1 集群組成 398
8.5.2 容災(zāi) 399
8.5.3 擴容與縮容 402
8.6 日常運維 402
8.6.1 數(shù)據(jù)與日志管理 402
8.6.2 Too many connections 404
8.6.3 磁盤管理 405
小結(jié) 405
附錄AWindows平臺上部署ZooKeeper 406
附錄B從源代碼開始構(gòu)建 409
附錄C各發(fā)行版本重大更新記錄 414
附錄DZooKeeper源代碼閱讀指引 418