用簡單的方式建構高性能服務架構不再是夢想,高吞吐量、快取設計、分層設計,讓你的網站及應用服務的價值及穩定度再度昇華
本書是理論結合實際的軟體架構設計指導手冊,旨在幫助讀者完成高性能軟體系統的架構設計工作。
書中涉及分散式、併發程式設計、資料庫最佳化、快取、IO、前端性能最佳化等方面的理論知識,並在理論知識的基礎上推導其實踐技巧。本書最後還運用書中知識,完成了一個實際軟體專案的架構設計工作,極適合軟體架構師、工程師、學生閱讀,以幫助其完善軟體發展知識體系和提升其軟體架構設計能力。
全書共12章,內容如下
■ 第 1 章 高性能和架構
包括高性能代表的具體指標,架構的具體含義與主要內容。
■ 第 2 章 分流設計
即如何使用內容分發網路、多位址直連、反向代理等手段將使用者的請求分散到不同的系統上,從而降低每個系統的併發數。
■ 第 3 章 服務平行相關的設計
首先,介紹了平行與併發的概念。其次,在此基礎上介紹了叢集系統、分散式系統、微服務系統。包括各類別系統的特點、實現困難等。服務平行設計能夠進一步將系統內的請求進行分流,從而提升系統性能。
■ 第 4 章 多進行、多執行緒、多程式碼協同等運算併發手段
尤其是對常見的多執行緒進行了深入介紹,包括執行緒的狀態轉換、應用場景、使用方法、協作方法等。透過運算併發設計,能夠顯著提升系統的併發能力。
■ 第 5 章 輸入輸出設計
首先介紹了IO的分類別維度、層級。然後詳細介紹了常見的五種IO模型,包括這些模型之間的演化邏輯,並列出了這些模型的實際使用範例。
■ 第 6 章 資料庫設計與最佳化手段
從最基本的關聯式資料庫設計開始,介紹了關聯式資料庫設計的設計範式、反範式。在此基礎上,還介紹了各類別索引的原理、使用條件,各類別鎖的特點,鎖死的產生與解除,交易及其隔離等級等。在章節的最後還介紹了針對巨量儲存資料時資料庫該如何最佳化,以及一些非傳統的資料庫和資料庫中介軟體。
■ 第 7 章 快取設計的方法和技巧。
這一章從快取的收益說起,推導提升快取收益的方法。然後在此基礎上,列出了提升快取收益的具體實施手段,包括快取要素的設計、更新機制的設計、清理機制的設計、風險點的處理、位置的設計等。最後還介紹了寫快取的收益計算和實踐方案。
■ 第 8 章 系統可靠性設計的相關知識
首先,介紹了可靠性的概念與具體的衡量指標。其次,在此基礎上介紹了提升系統可靠性的手段。這一章將幫助我們建構高可靠性的系統。
■ 第 9 章 應用保護的基礎知識和實踐手段
這些知識和手段能提升應用在突發狀況下的工作狀況。
■ 第 10 章 前端高性能的相關知識
這是一個相對獨立的一章。首先,分析了前端工作過程中的性能關鍵點。其次,針對這些關鍵點列出了前端性能最佳化的手段。具有較強的綜合性和指導性。
■ 第 11 章架 構設計中架構設計風格和軟體生命週期的基礎知識
這些知識將指導我們系統化地進行軟體架構工作。
■ 第 12 章 項目實踐
本章以前面各章介紹的高性能架構知識為依據,完整地開展了一個高性能軟體系統的架構工作,包括理論推導、模型設計、概要設計、詳細設計等各個環節,介紹了一個完整的高性能架構過程。本章的內容能幫助讀者學會如何在實踐中靈活運用前面各章的知識。