《分散式系統原理與工程實踐》是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.3.1 分散式套用的定義
- 1.3.2 分散式一致性問題
- 1.3.2 分散式套用中的節點
- 1.4.1 降低了套用成本
- 1.4.2 增強套用可用性
- 1.4.3 提升套用性能
- 1.4.4 降低了開發與維護難度
- 1.5.1 一致性問題
- 1.5.2 節點發現問題
- 1.5.3 節點調用問題
- 1.5.4 節點協作問題
- 2.1 一致性的概念
- 2.1.1 ACID一致性
- 2.1.2 CAP 一致性
- 2.1.3 兩種一致性的關係
- 2.2.1 嚴格一致性(Strict Consistency)
- 2.2.2 順序一致性(Sequential Consistency)
- 2.2.3 線性一致性(Linearizability)
- 2.2.4 最終一致性(Eventually Consistency)
- 2.2.5 總結
- 2.4.1 具體實現
- 2.4.2 強一致性證明
- 2.4.3 優劣
- 2.5.1 具體實現
- 2.5.2 優劣
- 3.1 共識與一致性
- 3.1.1 共識的概念
- 3.1.2 再論“一致性”
- 3.3.1 非拜占庭容錯類算法
- 3.3.2 拜占庭容錯類算法
- 3.5.1 Paxos算法的提出與證明
- 問題描述
- 提議批准
- 提議學習
- 3.8.1 Leader選舉階段
- 3.8.2 變更處理階段
- 3.8.3 Raft算法的保證
- 腦裂的避免
- 已提交請求的保證
- 4.1 概述
- 4.2 CAP理論
- 4.2.1 CAP理論的內容
- 4.2.2 CAP理論的理解
- 4.4.1 BASE理論的含義
- 基本可用
- 軟狀態
- 最終一致性
- 第5章 分散式鎖
- 5.1 分散式鎖的產生
- 5.2 分散式鎖的特性
- 5.2.1 全局性
- 5.2.2 唯一性
- 5.2.3 遵從性
- 5.4.1 邏輯分散式鎖
- 5.4.2 唯一性索引分散式鎖
- 5.4.3 唯一性校驗分散式鎖
- 5.4.4 一致性分散式鎖
- 6.1 概述
- 6.2 本地事務與分散式事務
- 6.3 分散式事務的類別
- 6.3.1 套用內多資料庫事務
- 6.3.2 單體套用間事務
- 6.3.3 分散式系統內事務
- 6.3.4 分散式系統間事務
- 6.6.1 化為本地事務
- 6.6.2 化為套用內多資料庫事務
- 6.6.3 TCC
- Try階段
- Confirm階段
- Cancel階段
- TCC操作總結
- 7.1 分散式帶來的問題
- 7.2 服務發現
- 7.2.1 服務發現模型中的角色
- 7.2.2 反向代理模型
- 7.2.3 註冊中心模型
- 7.2.4 服務格線模型
- 7.2.5 三種模型的比較
- 7.3.1 背景介紹
- 7.3.2 基於接口的調用
- 7.3.3 遠程過程調用
- 服務調用方
- 通信
- 服務提供方
- RPC總結
- 8.1 服務保護
- 8.1.1 服務保護的理論依據
- 8.1.2 隔離
- 8.1.3 限流
- 時間窗限流法
- 漏桶限流法
- 令牌限流法
- 8.2.1 產生背景
- 8.2.2 網關的功能
- 8.2.3 網關結構
- 9.1 概述
- 9.1.1 冪等接口概述
- 9.1.2 章節結構
- 9.2.1 代數系統的定義
- 9.2.2 特殊元素
- 麼元
- 零元
- 9.3.1 函式的定義
- 9.3.2 複合函式
- 9.4.1 函式的麼元化
- 9.4.2 函式的零元化
- 左零元
- 右零元
- 零元
- 9.7.1 判斷插入數據
- 9.7.2 判斷刪除數據
- 9.7.3 判斷數據版本
- 9.7.4 攔截重試調用
- 第10章 分散式中間件概述
- 第11章 RabbitMQ詳解
- 11.1 訊息系統概述
- 11.1.1 訊息系統模型
- 11.1.2 訊息系統的套用
- 11.3.1 Exchange
- 11.3.2 Queue
- 11.3.3 Message
- 11.4.1 生產者與Exchange
- 11.4.2 Exchange與Queue
- 11.4.3 Queue與消費者
- 11.5.1 投遞確認功能
- 11.5.2 持久化功能
- 11.5.3 消費確認功能
- 11.5.4 逐條派發功能
- 11.5.5 RPC功能
- 11.6.1 點對點模型
- 11.6.2 發布訂閱模型
- 12.1 單機安裝與啟動
- 12.1.1 運行配置
- 12.1.2 啟動
- 12.1.3 計時方式
- 12.2.1 數據模型概述
- 12.2.2 znode的數據與狀態
- 12.2.3 znode的可選特性
- 持久特性
- 短暫特性
- 序列特性
- 容器特性
- TTL特性
- znode特性總結
- 許可權表示規則
- 用戶識別規則
- world方案
- ip方案
- auth方案
- digest方案
- 12.3.1 設定類命令
- 12.3.2 znode操作類命令
- 12.3.3 互動式命令行客戶端使用示例
- 12.4.1 監聽器特性
- 一次性
- 順序性
- 分類別
- 輕量級
- 恢復性
- 單執行緒
- 12.5.1 連線建立
- 連線字元串
- 會話逾時時間
- 12.6.1 集群配置與啟動
- 12.6.2 一致性實現
- 角色劃分與狀態
- 廣播階段
- 選主階段
- 恢復階段
- 12.7.1 依賴引入
- 12.7.2 創建監聽器
- 12.7.3 主流程編寫與使用
- 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 展望