中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網(wǎng) 請 | 注冊
> >
深入理解分布式系統(tǒng)

包郵 深入理解分布式系統(tǒng)

作者:唐偉志
出版社:電子工業(yè)出版社出版時間:2022-03-01
開本: 16開 頁數(shù): 316
中 圖 價:¥77.8(7.2折) 定價  ¥108.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

深入理解分布式系統(tǒng) 版權(quán)信息

深入理解分布式系統(tǒng) 本書特色

適讀人群 :本書適合對分布式感興趣的讀者面向初學(xué)者:通過理論和實踐結(jié)合的方式介紹分布式系統(tǒng),幫助讀者夯實分布式基礎(chǔ)知識; 面向?qū)嵺`者:實現(xiàn)簡單的Paxos共識算法,分析HDFS、ZooKeeper、etcd、Kubernetes等分布式系統(tǒng)案例。

深入理解分布式系統(tǒng) 內(nèi)容簡介

《深入理解分布式系統(tǒng)》主要講解分布式系統(tǒng)常用的基礎(chǔ)知識、算法和案例,經(jīng)筆者對文獻海洋中晦澀艱深的原理和算法進行提煉,輔以圖示和代碼,并結(jié)合實際經(jīng)驗進行分析總結(jié)而成。通過閱讀本書,讀者可以快速、輕松地掌握分布式系統(tǒng)的基本原理,以及Paxos或Raft共識算法,并通過典型的案例學(xué)習如何設(shè)計大型分布式系統(tǒng)。 《深入理解分布式系統(tǒng)》首先介紹什么是分布式系統(tǒng)、分布式系統(tǒng)帶來的挑戰(zhàn),以及如何對分布式系統(tǒng)進行建模,這部分內(nèi)容偏向概念性介紹。接著介紹了分布式數(shù)據(jù)的基礎(chǔ)知識,包括數(shù)據(jù)分區(qū)技術(shù)、數(shù)據(jù)復(fù)制技術(shù)、CAP定理、一致性模型和隔離級別,嘗試厘清一些十分容易混淆的術(shù)語,比如一致性、線性一致性、*終一致性和一致性算法等。本書還介紹了分布式系統(tǒng)的核心算法——Paxos和Raft算法,不僅補充了大量圖示進行講解,還從零實現(xiàn)了一個Paxos算法。此外,本書分析了常見的分布式事務(wù),并討論了分布式系統(tǒng)中的時間問題,整理了一些實際發(fā)生的編程陷阱。*后結(jié)合一些對工業(yè)界產(chǎn)生重大影響的論文或開源系統(tǒng),學(xué)習前人在設(shè)計大型分布式系統(tǒng)時的思路、取舍和創(chuàng)新。

深入理解分布式系統(tǒng) 目錄

第1章 認識分布式系統(tǒng) 1.1 什么是分布式系統(tǒng) 1.2 為什么需要分布式系統(tǒng) 1.3 分布式系統(tǒng)的示例 1.3.1 搜索引擎 1.3.2 加密貨幣 1.4 分布式系統(tǒng)的挑戰(zhàn) 1.4.1 網(wǎng)絡(luò)延遲問題 1.4.2 部分失效問題 1.4.3 時鐘問題 1.5 每個程序員都應(yīng)該知道的數(shù)字 1.6 本章小結(jié) 第2章 分布式系統(tǒng)模型 2.1 兩將軍問題 2.2 拜占庭將軍問題 2.3 系統(tǒng)模型 2.3.1 網(wǎng)絡(luò)鏈路模型 2.3.2 節(jié)點故障類型 2.3.3 按時間劃分系統(tǒng)模型 2.4 消息傳遞語義 2.5 本章小結(jié) 第3章 分布式數(shù)據(jù)基礎(chǔ) 3.1 分區(qū) 3.1.1 水平分區(qū)算法 3.1.2 分區(qū)的挑戰(zhàn) 3.2 復(fù)制 3.2.1 單主復(fù)制 3.2.2 多主復(fù)制 3.2.3 無主復(fù)制 3.3 CAP定理 3.3.1 PACELC定理 3.3.2 BASE 3.4 一致性模型 3.4.1 線性一致性 3.4.2 實現(xiàn)線性一致性 3.4.3 線性一致性的代價 3.4.4 順序一致性 3.4.5 因果一致性 3.4.6 *終一致性 3.4.7 以客戶端為中心的一致性模型 3.5 隔離級別 3.6 一致性和隔離級別的對比 3.7 本章小結(jié) 第4章 分布式共識 4.1 分布式共識簡介 4.1.1 什么是分布式共識 4.1.2 為什么要達成共識 4.2 異步系統(tǒng)中的共識 4.2.1 FLP不可能定理 4.2.2 故障屏蔽 4.2.3 使用故障檢測器 4.2.4 使用隨機性算法 4.3 同步系統(tǒng)中的共識 4.4 Paxos 4.4.1 基本概念 4.4.2 問題描述 4.4.3 Paxos算法實現(xiàn)流程 4.4.4 案例 4.4.5 活鎖 4.5 實驗:使用Go語言實現(xiàn)Paxos共識算法 4.5.1 定義相關(guān)結(jié)構(gòu)體 4.5.2 定義消息結(jié)構(gòu)體 4.5.3 算法實現(xiàn)流程 4.5.4 學(xué)習提案 4.5.5 實現(xiàn)單元測試 4.6 Multi-Paxos 4.6.1 確定日志索引 4.6.2 領(lǐng)導(dǎo)者選舉 4.6.3 減少請求 4.6.4 副本的完整性 4.6.5 客戶端請求 4.6.6 配置變更 4.6.7 完整實現(xiàn) 4.6.8 Paxos練習題 4.7 其他Paxos變體 4.7.1 Disk Paxos 4.7.2 Cheap Paxos 4.7.3 Fast Paxos 4.7.4 Mencius 4.7.5 EPaxos 4.7.6 Flexible Paxos 4.7.7 WPaxos 4.7.8 CASPaxos 4.7.9 其他 4.8 Raft算法 4.8.1 系統(tǒng)模型 4.8.2 基本概念 4.8.3 領(lǐng)導(dǎo)者選舉 4.8.4 日志復(fù)制 4.8.5 領(lǐng)導(dǎo)者更替 4.8.6 選舉限制舉例 4.8.7 延遲提交之前任期的日志條目 4.8.8 清理不一致的日志 4.8.9 處理舊領(lǐng)導(dǎo)者 4.8.10 客戶端協(xié)議 4.8.11 實現(xiàn)線性一致性 4.8.12 配置變更 4.8.13 配置變更存在的Bug 4.8.14 極端情況下的活性問題 4.8.15 日志壓縮 4.8.16 基于內(nèi)存的狀態(tài)機的快照 4.8.17 基于磁盤的狀態(tài)機的快照 4.8.18 性能優(yōu)化 4.8.19 Raft練習題 4.9 Paxos vs Raft 4.10 拜占庭容錯和PBFT算法 4.11 本章小結(jié) 第5章 分布式事務(wù) 5.1 什么是分布式事務(wù) 5.2 原子提交 5.2.1 兩階段提交 5.2.2 三階段提交 5.2.3 Paxos提交算法 5.2.4 基于Quorum的提交協(xié)議 5.2.5 Saga事務(wù) 5.3 并發(fā)控制 5.3.1 兩階段鎖 5.3.2 樂觀并發(fā)控制 5.3.3 多版本并發(fā)控制 5.4 Percolator 5.5 本章小結(jié) 第6章 時間和事件順序 6.1 物理時鐘 6.2 時鐘同步 6.3 邏輯時鐘 6.4 向量時鐘 6.5 分布式快照 6.6 本章小結(jié) 第7章 案例研究 7.1 分布式文件系統(tǒng) 7.1.1 GFS的目標 7.1.2 架構(gòu) 7.1.3 讀取文件 7.1.4 寫入文件 7.1.5 一致性模型 7.1.6 其他 7.2 分布式協(xié)調(diào)服務(wù) 7.2.1 ZooKeeper架構(gòu) 7.2.2 數(shù)據(jù)模型 7.2.3 ZooKeeper實現(xiàn) 7.2.4 客戶端API 7.2.5 其他 7.3 分布式表格存儲Bigtable 7.3.1 數(shù)據(jù)模型 7.3.2 架構(gòu) 7.3.3 SSTable和LSM Tree 7.3.4 其他優(yōu)化 7.4 分布式鍵值存儲Dynamo 7.4.1 架構(gòu) 7.4.2 請求協(xié)調(diào) 7.4.3 成員管理和故障檢測 7.5 分布式NoSQL數(shù)據(jù)庫Cassandra 7.5.1 數(shù)據(jù)模型 7.5.2 架構(gòu) 7.5.3 協(xié)調(diào)請求 7.5.4 一致性級別 7.5.5 輕量級事務(wù) 7.5.6 二級索引 7.5.7 批處理 7.6 分布式數(shù)據(jù)庫Spanner 7.6.1 數(shù)據(jù)模型 7.6.2 架構(gòu) 7.6.3 TrueTime 7.6.4 讀寫事務(wù) 7.6.5 只讀事務(wù) 7.6.6 快照讀和模式變更事務(wù) 7.7 分布式批處理 7.7.1 MapReduce 7.7.2 Spark 7.8 分布式流處理框架Flink 7.8.1 計算模型 7.8.2 系統(tǒng)架構(gòu) 7.8.3 時間處理 7.8.4 分布式快照 7.8.5 端到端的精確一次語義 7.9 本章小結(jié)
展開全部

深入理解分布式系統(tǒng) 節(jié)選

原子提交在分布式領(lǐng)域更普遍地被稱為提交問題(The Commit Problem)。 事務(wù)的一大好處就是保證了原子性,所有的操作要么都執(zhí)行,要么都不執(zhí)行(All Or Nothing)。原子性可以說是事務(wù)*重要的特性,軟件開發(fā)人員依靠事務(wù)的原子性,能夠安全地將一系列相關(guān)的、不可分割的操作組合成一個整體,實現(xiàn)許多業(yè)務(wù)需求。 但保證原子性并非易事—不僅僅是在分布式系統(tǒng)中,在單機系統(tǒng)中亦如此。原因是原子性涉及了硬件和軟件,而兩者都可能出現(xiàn)意外故障。即使是向文件中寫入一些簡單的字節(jié),也需要額外的工作來保證寫入的原子性,保證即使硬盤在執(zhí)行寫入操作的時候出現(xiàn)故障,文件也不會被損壞。 我們先簡單回顧單機事務(wù)的原子性的實現(xiàn)。 常見的機械磁盤一般可以保證512字節(jié)的原子寫,所謂原子寫也就是說,即便遭遇突然斷電等意外情況,一般的機械磁盤也可以保證當前512字節(jié)的成功寫入;如果寫入的數(shù)據(jù)大于512字節(jié),則原子寫得不到保障。 為了在更通用的情況下實現(xiàn)原子性,常見方法是使用日志或WAL這類技術(shù)。簡單地說,先將操作的元數(shù)據(jù)寫入一個單獨的日志文件,同時還有表示操作是否完成的標記。倘若系統(tǒng)在寫入過程中發(fā)生故障,那么基于這些數(shù)據(jù),系統(tǒng)恢復(fù)后依然能夠識別出哪些操作在故障發(fā)生前已完成,然后通過撤銷所有的操作來回滾事務(wù);或者通過完成剩余未執(zhí)行的操作來繼續(xù)提交事務(wù)。基于硬盤原子寫和日志文件來實現(xiàn)事務(wù)原子性的方法,在文件系統(tǒng)和數(shù)據(jù)庫中廣泛使用。 但分布式系統(tǒng)中的原子性問題更加復(fù)雜,因為節(jié)點分布在不可靠的網(wǎng)絡(luò)中。此外,我們不僅需要確保一個操作在一個節(jié)點上的原子性,還要確保一個操作在多個節(jié)點上的原子性,也就是說,操作要么在所有的節(jié)點上都生效,要么不在任何一個節(jié)點上生效,每個節(jié)點提交或中止事務(wù)的操作要保持一致。 我們還是用銀行轉(zhuǎn)賬來舉例。假設(shè)一個分布式系統(tǒng)中的兩臺服務(wù)器,用戶A的賬戶余額存儲在服務(wù)器N1上,用戶B的賬戶余額存儲在服務(wù)器N2上,他們的賬戶上都有100元。 接下來用戶A要轉(zhuǎn)賬10元給用戶B,事務(wù)需要同時修改用戶A和用戶B的數(shù)據(jù)。假設(shè)事務(wù)先給服務(wù)器N2上用戶B的賬戶加上10元,再給服務(wù)器N1上用戶A的賬戶減去10元。由于數(shù)據(jù)分布在兩臺完全不同的服務(wù)器上,很可能出現(xiàn)一些意想不到的故障,可能在給用戶B的賬戶加上10元后,服務(wù)器N1宕機了,無法對用戶A扣錢;甚至服務(wù)器沒有宕機也可能觸發(fā)異常,例如可能在請求服務(wù)器N1的時候發(fā)現(xiàn)用戶A的賬戶余額已經(jīng)不足10元了,不能再對用戶A的賬戶減去10元(數(shù)據(jù)庫約束賬戶不能為負數(shù))。不管怎樣,服務(wù)器N1沒有完成它在事務(wù)中的那部分工作,但服務(wù)器N2又完成了它的任務(wù)。 分布式事務(wù)的原子性通過原子提交協(xié)議(Atomic Commit Protocol,ACP)來實現(xiàn),原子提交協(xié)議也叫原子提交算法,原子提交協(xié)議必須滿足以下三個特性: ?? 協(xié)定性(Agreement)。所有進程都決議出同一個值,相當于所有進程要么一起提交事務(wù),要么一起中止事務(wù),不存在兩個進程一個提交事務(wù)另一個中止事務(wù)的情況。 ?? 有效性(Validity)。如果所有進程都決定提交事務(wù)并且沒有任何故障發(fā)生,那么*終整個系統(tǒng)將提交事務(wù);只要有一個進程決定中止事務(wù),系統(tǒng)*終將中止事務(wù)。 ?? 終止性(Termination)。終止性又分為弱終止條件(Weak Termination Condition)和強終止條件(Strong Termination Condition)。弱終止條件是指,如果沒有任何故障發(fā)生,那么所有進程*終都會做出決議(提交或終止事務(wù));強終止條件也稱為非阻塞條件(Non-Blocking Condition),是指沒有發(fā)生故障的進程*終會做出決議。 滿足強終止條件的提交算法被稱作非阻塞提交算法,而滿足弱終止條件但不滿足強終止條件的提交算法被稱作阻塞提交算法。值得注意的是,協(xié)定性約束了兩個進程不能決議出不同的值,因此,原子提交協(xié)議嚴格不允許一個出錯的進程和一個正確的進程做出不同的決定。如果一個進程出錯一段時間后又恢復(fù),則會導(dǎo)致提交算法出現(xiàn)不一致。 其實從這三個特性可以看出,原子提交協(xié)議實際上解決了分布式共識問題(見第4章)的一個子類,即對事務(wù)的提交或中止達成共識。

深入理解分布式系統(tǒng) 作者簡介

唐偉志,曾任網(wǎng)易游戲、騰訊基礎(chǔ)架構(gòu)工程師。畢業(yè)后一直從事分布式系統(tǒng)相關(guān)工作,在知乎和公眾號“多顆糖”上分享對分布式系統(tǒng)論文的解讀和算法的講解。開源愛好者、TiDB Reviewer和Kubernetes Contributor。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
返回頂部
中圖網(wǎng)
在線客服
主站蜘蛛池模板: 选矿设备,选矿生产线,选矿工艺,选矿技术-昆明昆重矿山机械 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司 | 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 春腾云财 - 为企业提供专业财税咨询、代理记账服务 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 海外仓系统|国际货代系统|退货换标系统|WMS仓储系统|海豚云 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | AGV无人叉车_激光叉车AGV_仓储AGV小车_AGV无人搬运车-南昌IKV机器人有限公司[官网] | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 护栏打桩机-打桩机厂家-恒新重工 | 活动策划,舞台搭建,活动策划公司-首选美湖上海活动策划公司 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | 阜阳在线-阜阳综合门户| 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科| 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | 口信网(kousing.com) - 行业资讯_行业展会_行业培训_行业资料 | 喷砂机厂家_自动除锈抛丸机价格-成都泰盛吉自动化喷砂设备 | 安徽华耐泵阀有限公司-官方网站| 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | 卫浴散热器,卫浴暖气片,卫生间背篓暖气片,华圣格浴室暖气片 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 压力喷雾干燥机,喷雾干燥设备,柱塞隔膜泵-无锡市闻华干燥设备有限公司 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 |