ZooKeeper:分布式過(guò)程協(xié)同技術(shù)詳解
定 價(jià):¥69
中 教 價(jià):¥45.54 (6.60折)
庫(kù) 存 數(shù): 0
叢 書(shū) 名:OReilly精品圖書(shū)系列
本書(shū)分三部分,共10章。第一部分(第1~2章)闡述ApacheZooKeeper這類(lèi)系統(tǒng)的設(shè)計(jì)目的和動(dòng)機(jī),并介紹分布式系統(tǒng)的一些必要背景知識(shí)。第1章介紹ZooKeeper可以做什么,以及其設(shè)計(jì)如何支撐這些任務(wù)。第2章介紹基本概念和基本組成模塊,并通過(guò)命令行工具的具體操作介紹了ZooKeeper可以做什么。第二部分(第3~8章)闡述開(kāi)發(fā)人員所需要掌握的ZooKeeper庫(kù)調(diào)用方法和編程技巧。第3章介紹Java語(yǔ)言的API.第4章解釋如何跟蹤和處理ZooKeeper中的狀態(tài)變更情況。第5章介紹如何在系統(tǒng)或網(wǎng)絡(luò)故障時(shí)恢復(fù)應(yīng)用。第6章介紹需要注意來(lái)避免故障的一些繁雜卻很重要的場(chǎng)景。第7章介紹C語(yǔ)言版的API接口,也可以作為非Java語(yǔ)言實(shí)現(xiàn)的ZooKeeperAPI的基礎(chǔ),對(duì)非Java語(yǔ)言的開(kāi)發(fā)人員非常有幫助。第8章介紹一款更高層級(jí)的封裝的ZooKeeper接口。第三部分(第9~10章)主要介紹ZooKeeper內(nèi)部原理及如何運(yùn)行ZooKeeper.第9章介紹ZooKeeper的作者們?cè)谠O(shè)計(jì)時(shí)所采用的方案。第10章介紹如何對(duì)ZooKeeper進(jìn)行配置。
作者介紹Flavio Junqueira 是微軟研究院在英國(guó)劍橋大學(xué)的研究人員之一。他擁有美國(guó)加州大學(xué)圣地亞哥分校計(jì)算機(jī)科學(xué)博士學(xué)位。他的研究范圍涉及分布式系統(tǒng)的各個(gè)方面,包括分布式算法、并發(fā)性和可擴(kuò)展性。他是Apache項(xiàng)目如Apache ZooKeeper(PMC主席和提交者)和Apache BookKeeper(提交者)的積極貢獻(xiàn)者。他一有空就喜歡睡覺(jué)。 Benjamin Reed 是一位負(fù)責(zé)Facebook中所有細(xì)節(jié)工作的軟件工程師。他以前的職位包括雅虎研究院首席研究科學(xué)家(負(fù)責(zé)所有大的方向)和IBM Almaden Research的研究人員(負(fù)責(zé)所有事情,無(wú)論大小)。他擁有加州大學(xué)圣克魯斯分校計(jì)算機(jī)科學(xué)博士學(xué)位。他從事的工作涉及分布式計(jì)算、大數(shù)據(jù)處理、分布式存儲(chǔ)、系統(tǒng)管理和嵌入式框架等領(lǐng)域。他參加了各種開(kāi)源項(xiàng)目,如Hadoop和Linux操作系統(tǒng)等。他幫助啟動(dòng)了由Apache軟件基金會(huì)主辦的項(xiàng)目如Pig、ZooKeeper和BookKeeper。
目錄前言 1第一部分 ZooKeeper的概念和基礎(chǔ)第1章 簡(jiǎn)介 71.1 ZooKeeper的使命 81.1.1 ZooKeeper改變了什么 101.1.2 ZooKeeper不適用的場(chǎng)景 101.1.3 關(guān)于Apache項(xiàng)目 111.1.4 通過(guò)ZooKeeper構(gòu)建分布式系統(tǒng) 111.2 示例:主-從應(yīng)用 121.2.1 主節(jié)點(diǎn)失效 131.2.2 從節(jié)點(diǎn)失效 141.2.3 通信故障 141.2.4 任務(wù)總結(jié) 151.3 分布式協(xié)作的難點(diǎn) 161.4 ZooKeeper的成功和注意事項(xiàng) 18第2章 了解ZooKeeper 192.1 ZooKeeper基礎(chǔ) 192.1.1 API概述 202.1.2 znode的不同類(lèi)型 212.1.3 監(jiān)視與通知 222.1.4 版本 242.2 ZooKeeper架構(gòu) 252.2.1 ZooKeeper仲裁 262.2.2 會(huì)話 272.3 開(kāi)始使用ZooKeeper 282.3.1 第一個(gè)ZooKeeper會(huì)話 282.3.2 會(huì)話的狀態(tài)和聲明周期 312.3.3 ZooKeeper與仲裁模式 332.3.4 實(shí)現(xiàn)一個(gè)原語(yǔ):通過(guò)ZooKeeper實(shí)現(xiàn)鎖 362.4 一個(gè)主-從模式例子的實(shí)現(xiàn) 372.4.1 主節(jié)點(diǎn)角色 372.4.2 從節(jié)點(diǎn)、任務(wù)和分配 402.4.3 從節(jié)點(diǎn)角色 402.4.4 客戶端角色 412.5 小結(jié) 43第二部分 使用ZooKeeper進(jìn)行開(kāi)發(fā)第3章 開(kāi)始使用ZooKeeper的API 473.1 設(shè)置ZooKeeper的CLASSPATH 473.2 建立ZooKeeper會(huì)話 473.2.1 實(shí)現(xiàn)一個(gè)Watcher 493.2.2 運(yùn)行Watcher的示例 513.3 獲取管理權(quán) 533.3.1 異步獲取管理權(quán) 573.3.2 設(shè)置元數(shù)據(jù) 603.4 注冊(cè)從節(jié)點(diǎn) 623.5 任務(wù)隊(duì)列化 653.6 管理客戶端 663.7 小結(jié) 68第4章 處理狀態(tài)變化 704.1 單次觸發(fā)器 714.2 如何設(shè)置監(jiān)視點(diǎn) 724.3 普遍模型 734.4 主-從模式的例子 744.4.1 管理權(quán)變化 744.4.2 主節(jié)點(diǎn)等待從節(jié)點(diǎn)列表的變化 774.4.3 主節(jié)點(diǎn)等待新任務(wù)進(jìn)行分配 804.4.4 從節(jié)點(diǎn)等待分配新任務(wù) 834.4.5 客戶端等待任務(wù)的執(zhí)行結(jié)果 864.5 另一種調(diào)用方式:Multiop 884.6 通過(guò)監(jiān)視點(diǎn)代替顯式緩存管理 904.7 順序的保障 914.7.1 寫(xiě)操作的順序 914.7.2 讀操作的順序 914.7.3 通知的順序 924.8 監(jiān)視點(diǎn)的羊群效應(yīng)和可擴(kuò)展性 934.9 小結(jié) 94第5章 故障處理 965.1 可恢復(fù)的故障 985.2 不可恢復(fù)的故障 1025.3 群首選舉和外部資源 1035.4 小結(jié) 106第6章 ZooKeeper注意事項(xiàng) 1076.1 使用ACL 1076.1.1 內(nèi)置的鑒權(quán)模式 1086.1.2 SASL和Kerberos 1116.1.3 增加新鑒權(quán)模式 1116.2 恢復(fù)會(huì)話 1116.3 當(dāng)znode節(jié)點(diǎn)重新創(chuàng)建時(shí),重置版本號(hào) 1126.4 sync方法 1126.5 順序性保障 1146.5.1連接丟失時(shí)的順序性 1146.5.2 同步API和多線程的順序性 1156.5.3 同步和異步混合調(diào)用的順序性 1156.6 數(shù)據(jù)字段和子節(jié)點(diǎn)的限制 1166.7 嵌入式ZooKeeper服務(wù)器 1166.8 小結(jié) 117第7章 C語(yǔ)言客戶端 1187.1 配置開(kāi)發(fā)環(huán)境 1187.2 開(kāi)始會(huì)話 1197.3 引導(dǎo)主節(jié)點(diǎn) 1217.4 行使管理權(quán) 1267.5 任務(wù)分配 1297.6 單線程與多線程客戶端 1327.7 小結(jié) 135第8章 Curator:ZooKeeper API的高級(jí)封裝庫(kù) 1368.1 Curator客戶端程序 1368.2 流暢式API 1378.3 監(jiān)聽(tīng)器 1388.4 Curator中狀態(tài)的轉(zhuǎn)換 1408.5 兩種邊界情況 1418.6 菜譜 1418.6.1 群首閂 1428.6.2 群首選舉器 1438.6.3 子節(jié)點(diǎn)緩存器 1468.7 小結(jié) 148第三部分 ZooKeeper的管理第9章 ZooKeeper內(nèi)部原理 1519.1 請(qǐng)求、事務(wù)和標(biāo)識(shí)符 1529.2 群首選舉 1539.3 Zab:狀態(tài)更新的廣播協(xié)議 1579.4 觀察者 1619.5 服務(wù)器的構(gòu)成 1629.5.1 獨(dú)立服務(wù)器 1639.5.2 群首服務(wù)器 1649.5.3 追隨者和觀察者服務(wù)器 1659.6 本地存儲(chǔ) 1669.6.1 日志和磁盤(pán)的使用 1669.6.2 快照 1679.7 服務(wù)器與會(huì)話 1699.8 服務(wù)器與監(jiān)視點(diǎn) 1709.9 客戶端 1709.10 序列化 1719.11 小結(jié) 171第10章 運(yùn)行ZooKeeper 17310.1 配置ZooKeeper服務(wù)器 17410.1.1 基本配置 17510.1.2 存儲(chǔ)配置 17510.1.3 網(wǎng)絡(luò)配置 17710.1.4 集群配置 17910.1.5 認(rèn)證和授權(quán)選項(xiàng) 18110.1.6 非安全配置 18210.1.7 日志 18310.1.8 專(zhuān)用資源 18510.2 配置ZooKeeper集群 18510.2.1 多數(shù)原則 18610.2.2 法定人數(shù)的可配置性 18610.2.3 觀察者 18810.3 重配置 18810.4 配額管理 19410.5 多租賃配置 19610.6 文件系統(tǒng)布局和格式 19710.6.1 事務(wù)日志 19810.6.2 快照 19910.6.3 時(shí)間戳文件 20010.6.4 已保存的ZooKeeper數(shù)據(jù)的應(yīng)用 20010.7 四字母命令 20110.8 通過(guò)JMX進(jìn)行監(jiān)控 20210.9 工具 20910.10 小結(jié) 209