分散式系統原理與工程實踐

《分散式系統原理與工程實踐》是2022年電子工業出版社出版的書籍。

本書通過理論篇、實踐篇、工程篇、總結篇四篇(13章),介紹了分散式系統的知識體系。理論篇介紹了一致性、共識、分散式約束等知識;實踐篇介紹了分散式鎖、分散式事務、服務發現與調用、服務保護與網關、冪等接口等知識;工程篇介紹了訊息系統中間件 RabbitMQ 和分散式協調中間件ZooKeeper等知識;總結篇則幫助大家釐清分散式系統的知識脈絡。

本書適合想要學習分散式系統理論、實踐、工程知識的學生、軟體開發者。

基本介紹

  • 書名:分散式系統原理與工程實踐
  • 別名:分散式系統原理與工程實踐:一致性、共識、Paxos、分散式事務、服務治理、微服務、冪等、訊息系統、ZooKeeper
  • 作者:易哥
  • 類別:計算機 軟體開發
  • 出版社:電子工業出版社
  • 出版時間:2022年1月1日
  • 頁數:260 頁
  • 定價:90 元
  • 開本:16 開
  • ISBN:9787121423611
圖書目錄,作者簡介,

圖書目錄

【理論篇】
  • 第1章 分散式概述
  • 1.1 概述
  • 1.2 套用的演進歷程
  • 1.2.1 單體套用
  • 1.2.2 集群套用
  • 無狀態的節點集群
  • 單一服務的節點集群
  • 共享信息池的節點集群
  • 信息一致的節點集群
1.2.3 狹義分散式套用
1.2.4 微服務套用
1.3 分散式套用概述
  • 1.3.1 分散式套用的定義
  • 1.3.2 分散式一致性問題
  • 1.3.2 分散式套用中的節點
1.4 分散式套用的優勢
  • 1.4.1 降低了套用成本
  • 1.4.2 增強套用可用性
  • 1.4.3 提升套用性能
  • 1.4.4 降低了開發與維護難度
1.5 分散式套用帶來的問題
  • 1.5.1 一致性問題
  • 1.5.2 節點發現問題
  • 1.5.3 節點調用問題
  • 1.5.4 節點協作問題
第2章 一致性
  • 2.1 一致性的概念
  • 2.1.1 ACID一致性
  • 2.1.2 CAP 一致性
  • 2.1.3 兩種一致性的關係
2.2 一致性的強弱
  • 2.2.1 嚴格一致性(Strict Consistency)
  • 2.2.2 順序一致性(Sequential Consistency)
  • 2.2.3 線性一致性(Linearizability)
  • 2.2.4 最終一致性(Eventually Consistency)
  • 2.2.5 總結
2.3 一致性算法
2.4 兩階段提交
  • 2.4.1 具體實現
  • 2.4.2 強一致性證明
  • 2.4.3 優劣
2.5 三階段提交
  • 2.5.1 具體實現
  • 2.5.2 優劣
第3章 共識
  • 3.1 共識與一致性
  • 3.1.1 共識的概念
  • 3.1.2 再論“一致性”
3.2 拜占庭將軍問題
3.3 算法的容錯性
  • 3.3.1 非拜占庭容錯類算法
  • 3.3.2 拜占庭容錯類算法
3.4 共識算法
3.5 Paxos算法
  • 3.5.1 Paxos算法的提出與證明
  • 問題描述
  • 提議批准
  • 提議學習
3.5.2 Paxos算法的內容
3.5.3 Paxos算法的總結分析
3.5.4 Paxos算法的理解示例
3.6 Multi-Paxos算法
3.7 Fast-Paxos算法
3.8 Raft算法
  • 3.8.1 Leader選舉階段
  • 3.8.2 變更處理階段
  • 3.8.3 Raft算法的保證
  • 腦裂的避免
  • 已提交請求的保證
3.8.4 Raft算法總結
第4章 分散式約束
  • 4.1 概述
  • 4.2 CAP理論
  • 4.2.1 CAP理論的內容
  • 4.2.2 CAP理論的理解
4.3 從CAP到BASE
4.4 BASE理論
  • 4.4.1 BASE理論的含義
  • 基本可用
  • 軟狀態
  • 最終一致性
4.4.2 BASE理論的套用
【實踐篇】
  • 第5章 分散式鎖
  • 5.1 分散式鎖的產生
  • 5.2 分散式鎖的特性
  • 5.2.1 全局性
  • 5.2.2 唯一性
  • 5.2.3 遵從性
5.3 分散式鎖的設計要點
5.4 分散式鎖的實現
  • 5.4.1 邏輯分散式鎖
  • 5.4.2 唯一性索引分散式鎖
  • 5.4.3 唯一性校驗分散式鎖
  • 5.4.4 一致性分散式鎖
5.5 分散式鎖的套用
第6章 分散式事務
  • 6.1 概述
  • 6.2 本地事務與分散式事務
  • 6.3 分散式事務的類別
  • 6.3.1 套用內多資料庫事務
  • 6.3.2 單體套用間事務
  • 6.3.3 分散式系統內事務
  • 6.3.4 分散式系統間事務
6.4 分散式事務的類別總結
6.5 套用內多資料庫事務方案
6.6 單體套用間事務方案
  • 6.6.1 化為本地事務
  • 6.6.2 化為套用內多資料庫事務
  • 6.6.3 TCC
  • Try階段
  • Confirm階段
  • Cancel階段
  • TCC操作總結
6.6.4 本地異步訊息機制
6.6.5 異步訊息中心機制
6.7 近似事務
第7章 服務發現與調用
  • 7.1 分散式帶來的問題
  • 7.2 服務發現
  • 7.2.1 服務發現模型中的角色
  • 7.2.2 反向代理模型
  • 7.2.3 註冊中心模型
  • 7.2.4 服務格線模型
  • 7.2.5 三種模型的比較
7.3 服務調用
  • 7.3.1 背景介紹
  • 7.3.2 基於接口的調用
  • 7.3.3 遠程過程調用
  • 服務調用方
  • 通信
  • 服務提供方
  • RPC總結
7.4 總結
第8章 服務保護與網關
  • 8.1 服務保護
  • 8.1.1 服務保護的理論依據
  • 8.1.2 隔離
  • 8.1.3 限流
  • 時間窗限流法
  • 漏桶限流法
  • 令牌限流法
8.1.4 降級
8.1.5 熔斷
8.1.6 恢復
8.2 服務網關
  • 8.2.1 產生背景
  • 8.2.2 網關的功能
  • 8.2.3 網關結構
第9章 冪等接口
  • 9.1 概述
  • 9.1.1 冪等接口概述
  • 9.1.2 章節結構
9.2 代數系統
  • 9.2.1 代數系統的定義
  • 9.2.2 特殊元素
  • 麼元
  • 零元
9.2.3 冪等
9.3 函式
  • 9.3.1 函式的定義
  • 9.3.2 複合函式
9.4 複合函式的冪等化
  • 9.4.1 函式的麼元化
  • 9.4.2 函式的零元化
  • 左零元
  • 右零元
  • 零元
9.4.3 運算的冪等化
9.4.4 複合函式冪等化總結
9.5 接口的麼元化
9.6 接口的零元化
9.7 調用的冪等化
  • 9.7.1 判斷插入數據
  • 9.7.2 判斷刪除數據
  • 9.7.3 判斷數據版本
  • 9.7.4 攔截重試調用
9.8 總結
【工程篇】
  • 第10章 分散式中間件概述
  • 第11章 RabbitMQ詳解
  • 11.1 訊息系統概述
  • 11.1.1 訊息系統模型
  • 11.1.2 訊息系統的套用
11.2 RabbitMQ概述
11.3 RabbitMQ組件
  • 11.3.1 Exchange
  • 11.3.2 Queue
  • 11.3.3 Message
11.4 RabbitMQ中的連線
  • 11.4.1 生產者與Exchange
  • 11.4.2 Exchange與Queue
  • 11.4.3 Queue與消費者
11.5 RabbitMQ的附加功能
  • 11.5.1 投遞確認功能
  • 11.5.2 持久化功能
  • 11.5.3 消費確認功能
  • 11.5.4 逐條派發功能
  • 11.5.5 RPC功能
11.6 RabbitMQ的使用
  • 11.6.1 點對點模型
  • 11.6.2 發布訂閱模型
第12章 ZooKeeper詳解
  • 12.1 單機安裝與啟動
  • 12.1.1 運行配置
  • 12.1.2 啟動
  • 12.1.3 計時方式
12.2 數據模型
  • 12.2.1 數據模型概述
  • 12.2.2 znode的數據與狀態
  • 12.2.3 znode的可選特性
  • 持久特性
  • 短暫特性
  • 序列特性
  • 容器特性
  • TTL特性
  • znode特性總結
12.2.4 znode的限額
12.2.5 znode許可權設定
  • 許可權表示規則
  • 用戶識別規則
  • world方案
  • ip方案
  • auth方案
  • digest方案
12.3 互動式命令行客戶端
  • 12.3.1 設定類命令
  • 12.3.2 znode操作類命令
  • 12.3.3 互動式命令行客戶端使用示例
12.4 監聽器
  • 12.4.1 監聽器特性
  • 一次性
  • 順序性
  • 分類別
  • 輕量級
  • 恢復性
  • 單執行緒
12.4.2 事件通知
12.4.3 互動式命令行客戶端中的監聽器
12.4.4 其他客戶端中的監聽器
12.5 連線與會話
  • 12.5.1 連線建立
  • 連線字元串
  • 會話逾時時間
12.5.2 伺服器切換
12.5.3 會話狀態
12.5.4 連線監聽器
12.6 集群安裝
  • 12.6.1 集群配置與啟動
  • 12.6.2 一致性實現
  • 角色劃分與狀態
  • 廣播階段
  • 選主階段
  • 恢復階段
12.7 使用示例
  • 12.7.1 依賴引入
  • 12.7.2 創建監聽器
  • 12.7.3 主流程編寫與使用
12.8 套用場景
  • 12.8.1 節點命名
  • 12.8.2 服務發現
  • 12.8.3 套用配置
  • 12.8.4 分散式鎖
【總結篇】
  • 第13章 再論分散式系統
  • 13.1 分散式與一致性
  • 13.2 書籍脈絡
  • 13.3 理論篇
  • 13.4 實踐篇
  • 13.5 工程篇
  • 13.6 總結與展望
  • 13.6.1 總結
  • 13.6.2 展望

作者簡介

崔現斌(筆名易哥),畢業於浙江大學、山東大學,高級軟體系統架構師、網路工程師、資料庫工程師、軟體測試工程師、註冊電氣工程師。在校成績優異,曾獲得國家獎學金兩次,一等獎學金四次,科技創新大賽一等獎三次,以及五四青年科學獎等。主要科研方向為機器學習、分散式算法、容錯算法在無線感測網路中的套用,相關論文獲得IEEE通信協會最佳論文獎。具有十餘年軟體開發經驗,曾擔任網站技術部門負責人,現從事網際網路金融行業。主要負責軟體系統架構設計與後端開發,專注分散式架構、研發協同、持續交付等領域,設計並實現套用交付流水系統、任務協作與管理系統、通用流處理平台等眾多系統或平台。同時也是一名活躍的開源開發者。著有書籍《通用源碼閱讀指導書《高性能架構之道》,兩本書籍均受到多方好評,並在台灣地區發行繁體版。

相關詞條

熱門詞條

聯絡我們