★☆★☆★【分散式系統的原理與實踐】★☆★☆★
本書是一本說明分散式系統理論、實踐、專案知識的書籍,
更是一本幫助建立完整的分散式系統知識系統的書籍。隨著網路世界的複雜化,當今數位世界已進入元宇宙時代,而Paxos、RabbitMQ及Zookeeper等頂級專案的興起,更讓分散式系統的設計、實作、產品開發等從前專屬於高級系統架構師的工作,逐漸走入程式設計師的日常。但分散式系統包括理論、實踐、專案等多方面內容。這些內容往往交織穿插在一起,給軟體開發者的學習帶來了不少困難,讓許多軟體開發者在學習過程中感到混亂和迷茫。為了幫助讀者學習分散式系統,本書對分散式系統的相關理論、實踐、專案知識進行了詳細的介紹,理論聯繫實踐、實踐結合專案,層層漸進,力求讓讀者知其然並知其所以然,建立完整的分散式系統知識系統。本書從理論就非常下功夫,並幫助讀者在演算法及CAP、BASE及一致性原理上充分了解,更有使用RabbitMQ及ZooKeeper的專案實作,讓你從普通的軟體開發者,一躍成為規劃全局的系統架構設計師。
本書重點✪理論篇(第1章~第4章)
介紹了分散式系統的概念,並討論了分散式系統的優缺點及需要面對的問題,也討論了一致性、共識、分散式約束等重要理論知識。
✪實踐篇(第5章~第9章)
介紹了分散式鎖、分散式交易、服務發現與呼叫、服務保護與閘道、冪等介面等知識,介紹了理論篇所述的內容如何具體實施。
✪專案篇(第10章~第12章)
以架設具體的專案為導向,介紹了分散式系統中介軟體。其中,著重介紹了訊息系統中介軟體RabbitMQ和分散式協調中介軟體ZooKeeper。
✪複習篇(第13章)
對前三篇的內容加以整理。
作者簡介:
易哥
畢業於浙江大學、山東大學,高級軟體系統架構師、網路工程師、資料庫工程師、軟體測試工程師、註冊電氣工程師。
在校成績優異,曾獲得國家獎學金兩次,一等獎學金四次,科技創新大賽一等獎三次,以及五四青年科學獎等。主要科研方向為機器學習、分散式運算、容錯算法在無線感測網路中的應用,相關論文獲得IEEE通信協會最佳論文獎。
具有十餘年軟體開發經驗,曾擔任網站技術部門負責人,現從事網際網路金融行業。主要負責軟體系統架構設計與後端開發,專注分散式架構、研發協同、持續交付等領域,設計並實現應用交付流水系統、任務協作與管理系統、通用流處理平台等眾多系統或平台。同時也是一名活躍的開源開發者。
著有<<巨型服務架構:分布式 / 資料庫優化 / 記憶體快取設計 / IO模型(改)>> <<拉近和大神之間的差距:從閱讀MyBatis原始程式碼開始>>,兩本書籍均受到多方好評。
作者序
前言
隨著軟體複雜度的增加和使用者規模的增長,分散式系統獲得了廣泛應用。對於軟體開發者而言,掌握分散式系統的相關知識是十分必要的。
但分散式系統包括理論、實踐、專案等多方面內容。這些內容往往交織穿插在一起,給軟體開發者的學習帶來了不少困難,讓許多軟體開發者在學習過程中感到混亂和迷茫。
為了幫助讀者學習分散式系統,本書對分散式系統的相關理論、實踐、專案知識進行了詳細的介紹,理論聯繫實踐、實踐結合專案,層層漸進,力求讓讀者知其然並知其所以然,建立完整的分散式系統知識系統。
本書共分為4 篇,13 章。
理論篇(第1 章~第4 章)介紹了分散式系統的概念,並討論了分散式系統的優缺點及需要面對的問題。然後,從這些問題入手,討論了一致性、共識、分散式約束等重要理論知識。該篇內容將為後續的實踐篇、專案篇提供清晰、明確的理論指引。
實踐篇(第5 章~第9 章)介紹了分散式鎖、分散式交易、服務發現與呼叫、服務保護與閘道、冪等介面等知識,介紹了理論篇所述的內容如何具體實施。讀者透過該篇內容的學習,會了解許多架構思想和實踐技
巧。
專案篇(第10 章~第12 章)以架設具體的專案為導向,介紹了分散式系統中介軟體。其中,著重介紹了訊息系統中介軟體RabbitMQ 和分散式協調中介軟體ZooKeeper。該篇與理論篇、實踐篇相呼應,但更加接近專案實作,可以直接將其中的內容作為專案開發時的參考資料。
複習篇(第13 章)對前面3 篇的內容進行了整理,幫助讀者釐清分散式系統的知識脈絡。
本書是一本說明分散式系統理論、實踐、專案知識的書籍,更是一本幫助建立完整的分散式系統知識系統的書籍。
本書內容的涵蓋範圍很廣,包括數學、演算法、架構、程式設計、中介軟體等多個領域。在本書的籌備過程中,作者閱讀了許多書籍、查閱了許多論文,前後歷時近兩年。在本書寫作過程中,為確保內容簡單易懂,作者多次斟酌和修改了行文脈絡。在本書完稿後,為保證內容的充實可靠,作者邀請了國內外學術、專案領域的多位專家、學者對本書的數學、演算法等內容進行了審稿。其中,周健博士等人從各自的專業領域出發,提出了很多寶貴的意見和建議。
本書的出版還獲得了李冰編輯的大力支持。崔寶順等人也參與寫作並提供了大量幫助。
由於作者水準有限,書中難免有疏漏之處,敬請讀者批評指正。真心希望本書能夠給讀者帶來架構能力和軟體開發能力的提升。
易哥
前言
隨著軟體複雜度的增加和使用者規模的增長,分散式系統獲得了廣泛應用。對於軟體開發者而言,掌握分散式系統的相關知識是十分必要的。
但分散式系統包括理論、實踐、專案等多方面內容。這些內容往往交織穿插在一起,給軟體開發者的學習帶來了不少困難,讓許多軟體開發者在學習過程中感到混亂和迷茫。
為了幫助讀者學習分散式系統,本書對分散式系統的相關理論、實踐、專案知識進行了詳細的介紹,理論聯繫實踐、實踐結合專案,層層漸進,力求讓讀者知其然並知其所以然,建立完整的分散式系統知識系統。
本書共分為4 篇,13 章。
...
目錄
Part 1 理論篇
Chapter 01 分散式概述
1.1 概述
1.2 應用的演進歷程
1.3 分散式系統概述
1.4 分散式應用的優勢
1.5 分散式應用的問題
1.6 本章小結
Chapter 02 一致性
2.1 一致性的概念
2.2 一致性的強弱
2.3 一致性演算法
2.4 兩階段提交
2.5 三階段提交
2.6 本章小結
Chapter 03 共識
3.1 共識與一致性
3.2 拜占庭將軍問題
3.3 演算法的容錯性
3.4 共識演算法
3.5 Paxos 演算法
3.6 Raft 演算法
3.7本章小結
Chapter 04 分散式約束
4.1 CAP 定理
4.2 從CAP 定理到BASE 定理
4.3 BASE 定理
4.4本章小結
Part 2 實踐篇
Chapter 05 分散式鎖
5.1 產生背景
5.2 特性
5.3 設計要點
5.4 實現
5.5 應用場景
5.6 本章小結
Chapter 06 分散式交易
6.1 本地交易與分散式交易
6.2 分散式交易的類別
6.3 分散式交易的類別複習
6.4 應用內多資料庫交易方案
6.5 單體應用間交易方案
6.6 近似交易
6.7 本章小結
Chapter 07 服務發現與呼叫
7.1 分散式帶來的問題
7.2 服務發現
7.3 服務呼叫
7.4 本章小結
Chapter 08 服務保護與閘道
8.1 服務保護
8.2 服務閘道
8.3 本章小結
Chapter 09 冪等介面
9.1 概述
9.2 代數系
9.3 函數
9.4 複合函數的冪等化
9.5 介面的單位元化
9.6 介面的零因子化
9.7 呼叫的冪等化
9.8 冪等介面複習
9.9 本章小結
Part 3 專案篇
Chapter10 分散式中介軟體概述
Chapter11 RabbitMQ 詳解
11.1 訊息系統概述
11.2 RabbitMQ 概述
11.3 RabbitMQ 的元件
11.4 RabbitMQ 的連接
11.5 附加功能
11.6 模型與應用
11.7 本章小結
Chapter12 ZooKeeper 詳解
12.1 單機設定與啟動
12.2 資料模型
12.3 互動式命令列用戶端
12.4 監聽器
12.5 連接與階段
12.6 叢集模式
12.7 應用範例
12.8 應用場景
12.9 本章小結
Part 4 複習篇
Chapter13 再論分散式系統
13.1 分散式與一致性
13.2 本書脈絡
13.3 複習與展望
Appendix A 參考文獻
Part 1 理論篇
Chapter 01 分散式概述
1.1 概述
1.2 應用的演進歷程
1.3 分散式系統概述
1.4 分散式應用的優勢
1.5 分散式應用的問題
1.6 本章小結
Chapter 02 一致性
2.1 一致性的概念
2.2 一致性的強弱
2.3 一致性演算法
2.4 兩階段提交
2.5 三階段提交
2.6 本章小結
Chapter 03 共識
3.1 共識與一致性
3.2 拜占庭將軍問題
3.3 演算法的容錯性
3.4 共識演算法
3.5 Paxos 演算法
3.6 Raft 演算法
3.7本章小結
Chapter 04 分散式約束
4.1 CAP 定理
4.2 從CAP 定理到BASE 定理
4.3 BASE 定理
4.4本章小結...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。