總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 計算技術、計算機技術
 
 
 
 
雲原生分布式存儲基石:etcd深入解析
 叢書名稱: 雲計算技術系列叢書
 作  者: 華為雲容器服務團隊/杜軍
 出版單位: 機械工業
 出版日期: 2019.01
 進貨日期: 2018/12/17
 ISBN: 9787111611929
 開  本: 16 開    
 定  價: 593
 售  價: 356
  會 員 價: 356
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
內容簡介:

本書為讀者深度解析分佈式鍵值存儲系統,全書分為3部分,第1部分是對分佈式系統的概念和一致性協議的綜述,重點解析Raft協議,使讀者對分佈式鍵值存儲系統有初步瞭解;第2部分介紹etcd安裝、部署、運維、安全等方面的知識,幫助讀者進一步掌握分佈式系統的使用方法,熟悉其常見功能和使用場景;第3部分是本書的特色部分,從代碼層次深入探討了etcd各大關鍵特性的具體設計與實現原理,讀者讀完本部分,會對整個etcd的架構有更加清晰的認識,可以從中汲取靈感,從而將一些實用的經驗應用到自己的分佈式系統中。


作者簡介:

杜軍,浙江大學電腦碩士,《Docker——容器與容器雲》Kubernetes部分的作者。就職於華為Cloud BU PaaS服務產品部,主要研究容器與集群管理技術。活躍於開源社區,是Kubernetes核心維護者和CNCF TOC Contributor。


圖書目錄:

前言
第一部分 基礎篇
第1章 分佈式系統與一致性協議2
1.1 CAP原理3
1.2 一致性5
1.2.1 一致性模型7
1.2.2 一致性模型分述9
1.2.3 複製狀態機16
1.2.4 拜占庭將軍問題18
1.2.5 FLP不可能性19
1.2.6 小結21
1.3 Paxos協議22
1.4 Raft協議:為可理解性而生24
1.4.1 Raft一致性演算法26
1.4.2 可用性與時序45
1.4.3 異常情況46
1.4.4 日誌壓縮與快照52
1.4.5 Raft演算法性能評估56
1.4.6 小結58
第二部分 實戰篇
第2章 為什麼使用etcd62
2.1 etcd是什麼64
2.2 etcd架構簡介66
2.2.1 etcd數據通道69
2.2.2 etcd架構71
2.3 etcd典型應用場景舉例72
2.3.1 服務註冊與發現72
2.3.2 消息發佈和訂閱75
2.3.3 負載均衡76
2.3.4 分佈式通知與協調77
2.3.5 分佈式鎖78
2.3.6 分佈式佇列80
2.3.7 集群監控與Leader競選81
2.3.8 小結82
2.4 etcd性能測試82
2.4.1 etcd讀性能82
2.4.2 etcd寫性能83
2.5 etcd與其他鍵值存儲系統的對比84
2.5.1 ZooKeeper VS etcd85
2.5.2 Consul VS etcd88
2.5.3 NewSQL(Cloud Spanner、CockroachDB、TiDB)VS etcd88
2.5.4 使用etcd做分佈式協同89
2.5.5 小結90
2.6 使用etcd的專案90
2.7 etcd概念辭彙表91
2.8 etcd發展里程碑92
2.8.1 etcd 0.4版本93
2.8.2 etcd 2.0版本93
2.8.3 etcd 3.0版本93
第3章 etcd初體驗95
3.1 單機部署95
3.1.1 單實例etcd95
3.1.2 多實例etcd98
3.2 多節點集群化部署100
3.2.1 靜態配置101
3.2.2 服務發現104
3.3 etcdctl常用命令行107
3.3.1 key的常規操作107
3.3.2 key的歷史與watch112
3.3.3 租約115
3.4 etcd常用配置參數117
3.4.1 member相關參數項117
3.4.2 cluster相關參數項118
3.4.3 proxy相關參數項120
3.4.4 安全相關參數項120
3.4.5 日誌相關參數項121
3.4.6 不安全參數項121
3.4.7 統計相關參數項122
3.4.8 認證相關參數項122
第4章 etcd開放API之v2123
4.1 API保證124
4.2 etcd v2 API126
4.2.1 集群管理API126
4.2.2 鍵值API126
4.2.3 鍵的TTL130
4.2.4 等待變化通知:watch134
4.2.5 自動創建有序key146
4.2.6 目錄TTL148
4.2.7 原子的CAS149
4.2.8 原子的CAD151
4.2.9 創建目錄153
4.2.10 羅列目錄154
4.2.11 刪除目錄156
4.2.12 獲取一個隱藏節點157
4.2.13 通過檔設置key158
4.2.14 線性讀158
4.3 統計數據158
4.3.1 Leader數據159
4.3.2 節點自身的數據160
4.3.3 更多統計數據161
4.4 member API162
4.4.1 List member162
4.4.2 加入一個member163
4.4.3 刪除一個member163
4.4.4 修改member的peer URL164
第5章 etcd開放API之v3165
5.1 從etcd v2到etcd v3166
5.1.1 gRPC167
5.1.2 序列化和反序列化優化167
5.1.3 減少TCP連接167
5.1.4 租約機制167
5.1.5 etcd v3的觀察者模式168
5.1.6 etcd v3的數據存儲模型169
5.1.7 etcd v3的迷你事務170
5.1.8 快照171
5.1.9 大規模watch171
5.2 gRPC服務172
5.3 請求和回應174
5.4 KV API176
5.4.1 鍵值對176
5.4.2 revision177
5.4.3 鍵區間178
5.4.4 Range API178
5.4.5 PUT調用181
5.4.6 事務182
5.4.7 Compact調用186
5.5 watch API186
5.5.1 Event187
5.5.2 流式watch187
5.6 Lease API190
5.6.1 獲得租約190
5.6.2 Keep Alives192
5.7 API使用示例192
第6章 etcd集群運維與穩定性195
6.1 etcd升級195
6.1.1 etcd從2.3升級到3.0195
6.1.2 etcd從3.0升級到3.1199
6.2 從etcd v2切換到v3202
6.2.1 切換客戶端代碼202
6.2.2 數據遷移203
6.3 運行時重配置204
6.3.1 兩階段配置更新保證集群安全205
6.3.2 永久性失去半數以上member206
6.4 參數調優207
6.4.1 時間參數207
6.4.2 快照208
6.4.3 磁片209
6.4.4 網路209
6.5 監控209
6.6 維護210
6.6.1 壓縮歷史版本210
6.6.2 消除碎片化211
6.6.3 存儲配額211
6.6.4 快照備份213
6.7 災難恢復213
6.7.1 快照214
6.7.2 恢復集群214
6.8 etcd網關215
6.8.1 什麼時候使用etcd網關216
6.8.2 什麼時候不該使用etcd網關216
6.8.3 啟動etcd網關217
6.9 gRPC代理217
6.9.1 可擴展的watch API218
6.9.2 限制219
6.9.3 可擴展的帶租約的API219
6.9.4 服務端保護220
6.9.5 啟動gRPC代理220
6.9.6 客戶端節點同步和功能變數名稱解析221
6.9.7 名字空間222
6.10 故障恢復223
6.10.1 小部分從節點故障223
6.10.2 主節點故障224
6.10.3 大部分節點故障224
6.10.4 網路分區224
6.10.5 集群啟動異常225
6.11 硬體225
第7章 etcd安全231
7.1 訪問安全231
7.1.1 許可權資源232
7.1.2 鍵值資源234
7.1.3 配置資源234
7.2 etcd訪問控制實踐235
7.2.1 User相關命令235
7.2.2 Role相關命令236
7.2.3 啟用用戶許可權功能237
7.3 傳輸安全238
7.3.1 TLS/SSL工作原理239
7.3.2 使用TLS加密etcd通信241
7.3.
顯示部分資訊


章節試讀:

為什麼要寫這本書
近年來,容器和雲原生生態蓬勃發展,我們正身處於一波雲原生的浪潮中。隨著我們習慣於在雲端產生和收集的數據,雲端積累了海量的數據並繼續以驚人的速度增長。如何實現數據分佈式、一致性存儲,確保雲原生環境的可擴展性和高可用性,是各組織亟須解決的現實問題。
雲計算時代,etcd必將成為雲原生和分佈式系統的基石!而奠定etcd基石地位的三個關鍵因素是Raft協議、Go語言和生態。
etcd從一開始就摒棄了以複雜和難以理解著稱的Paxos,而是另闢蹊徑地通過Raft化繁為簡,實現了一套健壯的分佈式一致性協議的SDK,這套SDK被很多其他分佈式資料庫/系統採用,甚至包括etcd兄弟專案rkt的競爭對手Docker。
至於被譽為雲時代C語言的Go語言,具備天然的高併發能力、易安裝和可讀性好等優點,成就了etcd的高性能和專案的易維護性,極大地激發了來自全世界的開源工程師參與etcd的熱情。雲原生領域用Go語言編寫的重量級專案不勝枚舉,例如Docker、Kubernetes和Istio等。
etcd相對於Zookeeper是一個年輕且更加輕量的專案,它擁有更加健康和有活力的社區。截至這本書出版前夕,etcd在Github上的star數是20 000 ,fork數是4000 ,擁有超過400名活躍的代碼貢獻者。不能忽視的一點是,etcd已經被Kubernetes和Cloud Foundry等頂級雲原生專案採用,並借勢經過了Google、華為雲、Red Hat、IBM、阿媯付T巨頭大規模生產環境的考驗。隨著etcd進入CNCF社區孵化,成為由CNCF治理的頂級專案,廠商中立的運作模式將進一步繁榮etcd的開源生態。
順勢而為,再加上合理的架構設計,恰如其分的實現,完全讓人有理由相信etcd的成功。
在我最開始接觸Kubernetes的時候,就和etcd打過交道了。etcd在華為PaaS平臺作為關鍵組件應用在分佈式數據協同與更新觀察等架構中。猶記得那時etcd剛發佈,我們希望它提升華為PaaS平臺的擴展性、性能和穩定性。因此,我們團隊還專門成立etcd特別攻關小組,吃透了etcd的內部運作機制和核心技術。我很榮幸成為這個小組的成員。從那時起,我便對etcd著了迷,一口氣翻看了etcd的源碼,同時也向etcd社區提交了若干個patch。
對於我們團隊來說,我們很榮幸見證了etcd在技術和社區的持續進步並成長為Kubernetes專案的一部分。etcd v3的正式發佈延續了這個勢頭,我們期待將來有更多的功能和特性被引入華為雲容器平臺的產品中。我們也很高興過去能夠與etcd團隊和技術社區一起工作,並將持續與etcd技術社區協作,將這項技術推到一個更高的層面。
至於為什麼要在工作之餘抽空寫這本書,我們在容器和Kubernetes技術佈道的過程中發現,國內從事該領域的工程師普遍對etcd瞭解不多,出了問題鮮有定位手段,而etcd官網又沒有中文資料,因特網上也缺少深入解析etcd原理的文章。本著回饋社區和普及雲原生技術的原則,我們華為雲容器服務團隊決定編寫這本書,做第一個“吃螃蟹”的人。
畢竟“源碼面前,了無秘密”。
讀者對象
這塈畯怚i以根據軟體需求劃分出本書的受眾:
分佈式系統工作者
Raft演算法研究者
etcd各個程度的學習者
Kubernetes用戶與開發者
如何閱讀本書
本書分為三部分,其中第二部分以接近實戰的實例來講解etcd的使用,相較於其他兩部分更獨立。如果你是一名分布式系統的初學者,請一定從第1章的基礎理論知識開始學習。
第一部分為基礎篇,包括第1章,我們將簡單地介紹分佈式系統的基本理論,並且詳解Raft演算法的工作原理,幫助讀者瞭解一些掌握etcd的基礎背景知識。
第二部分為實戰篇,包括第2∼7章,我們將著重講解etcd的常見功能和使用場景,包括etcd的架構分析、命令行使用、API調用、運維部署等。
第三部分為高級篇,包括第8∼11章,我們將直接打開etcd的源碼,為喜歡刨根問底的讀者深度剖析etcd的實現原理。
勘誤和支持
由於作者的水準有限,編寫的時間也很倉促,書中不妥之處在所難免,懇請讀者批評指正。如果你發現了書中的錯誤或者有更多的寶貴意見,歡迎發送郵件至我的郵箱m1093782566@163.com,我很期待能夠獲得你們的真摯回饋。
致謝
我首先要感謝etcd的工程師團隊,他們編寫並開源了這麼一款足以成為雲原生基石的分佈式存儲系統—etcd。
感謝華為雲容器服務團隊的高級架構師、Kubernetes社區核心維護者Kevin老師,他為這本書的出版提供了良好的技術氛圍和寶貴的實戰經驗支持。
感謝CMU在讀碩士研究生梁明強同學,在寫作過程中為我提供了犀利而寶貴的意見和文字。
感謝機械工業出版社華章公司的編輯楊繡國老師,感謝你的魄力和遠見,在這一年多的時間中始終支持我的寫作,你的鼓勵和幫助引導我能順利完成全部書稿。
我要感謝我的爸爸、媽媽、外公、外婆,感謝你們將我培養成人,並時時刻刻為我灌輸著信心和力量!
我要感謝我的愛人,你的陪伴和鼓勵使得這本書得以順利完成。
謹以此書,獻給我最親愛的家人,以及眾多熱愛雲原生與分佈式技術的朋友們。

杜軍
中國,華為杭州研究所,2018年9月
顯示部分資訊

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。