首頁 搜尋 我的知識庫
巨型服務架構:分布式/資料庫優化/記憶體快取設計/IO模型

巨型服務架構:分布式/資料庫優化/記憶體快取設計/IO模型

作者: 易哥
出版社: 深智數位
出版日期: 2021/06/20
ISBN-13: 9789860776003
書店 1






內容描述


用簡單的方式建構高性能服務架構不再是夢想,高吞吐量、快取設計、分層設計,讓你的網站及應用服務的價值及穩定度再度昇華
 
  本書是理論結合實際的軟體架構設計指導手冊,旨在幫助讀者完成高性能軟體系統的架構設計工作。

  書中涉及分散式、併發程式設計、資料庫最佳化、快取、IO、前端性能最佳化等方面的理論知識,並在理論知識的基礎上推導其實踐技巧。本書最後還運用書中知識,完成了一個實際軟體專案的架構設計工作,極適合軟體架構師、工程師、學生閱讀,以幫助其完善軟體發展知識體系和提升其軟體架構設計能力。

  全書共12章,內容如下
  ■ 第 1 章 高性能和架構
  包括高性能代表的具體指標,架構的具體含義與主要內容。

  ■ 第 2 章 分流設計
  即如何使用內容分發網路、多位址直連、反向代理等手段將使用者的請求分散到不同的系統上,從而降低每個系統的併發數。

  ■ 第 3 章 服務平行相關的設計
  首先,介紹了平行與併發的概念。其次,在此基礎上介紹了叢集系統、分散式系統、微服務系統。包括各類別系統的特點、實現困難等。服務平行設計能夠進一步將系統內的請求進行分流,從而提升系統性能。

  ■ 第 4 章 多進行、多執行緒、多程式碼協同等運算併發手段
  尤其是對常見的多執行緒進行了深入介紹,包括執行緒的狀態轉換、應用場景、使用方法、協作方法等。透過運算併發設計,能夠顯著提升系統的併發能力。

  ■ 第 5 章 輸入輸出設計
  首先介紹了IO的分類別維度、層級。然後詳細介紹了常見的五種IO模型,包括這些模型之間的演化邏輯,並列出了這些模型的實際使用範例。

  ■ 第 6 章 資料庫設計與最佳化手段
  從最基本的關聯式資料庫設計開始,介紹了關聯式資料庫設計的設計範式、反範式。在此基礎上,還介紹了各類別索引的原理、使用條件,各類別鎖的特點,鎖死的產生與解除,交易及其隔離等級等。在章節的最後還介紹了針對巨量儲存資料時資料庫該如何最佳化,以及一些非傳統的資料庫和資料庫中介軟體。

  ■ 第 7 章 快取設計的方法和技巧。
  這一章從快取的收益說起,推導提升快取收益的方法。然後在此基礎上,列出了提升快取收益的具體實施手段,包括快取要素的設計、更新機制的設計、清理機制的設計、風險點的處理、位置的設計等。最後還介紹了寫快取的收益計算和實踐方案。

  ■ 第 8 章 系統可靠性設計的相關知識
  首先,介紹了可靠性的概念與具體的衡量指標。其次,在此基礎上介紹了提升系統可靠性的手段。這一章將幫助我們建構高可靠性的系統。

  ■ 第 9 章 應用保護的基礎知識和實踐手段
  這些知識和手段能提升應用在突發狀況下的工作狀況。

  ■ 第 10 章 前端高性能的相關知識
  這是一個相對獨立的一章。首先,分析了前端工作過程中的性能關鍵點。其次,針對這些關鍵點列出了前端性能最佳化的手段。具有較強的綜合性和指導性。

  ■ 第 11 章架 構設計中架構設計風格和軟體生命週期的基礎知識
  這些知識將指導我們系統化地進行軟體架構工作。

  ■ 第 12 章 項目實踐
  本章以前面各章介紹的高性能架構知識為依據,完整地開展了一個高性能軟體系統的架構工作,包括理論推導、模型設計、概要設計、詳細設計等各個環節,介紹了一個完整的高性能架構過程。本章的內容能幫助讀者學會如何在實踐中靈活運用前面各章的知識。


目錄大綱


第1章  高性能架構  
1.1  軟體架構   
1.2  軟體的品質         
1.3  高性能概述         
1.4  軟體性能指標     
1.5  性能指標之間的關係   
1.6  高性能架構複習 

第2章  分流設計      
2.1  內容分發網路     
2.2  多位址直連         
2.3  反向代理   

第3章  服務平行設計        
3.1  平行與併發         
3.2  叢集系統              
3.3  分散式系統         
3.4  微服務系統         

第4章  運算併發      
4.1  多處理程序         
4.2  多執行緒
4.3  多程式碼協同     
4.4  運算併發複習     

第5章  輸入輸出設計        
5.1  概念梳理   
5.2  IO模型      
5.3  IO模型的層級關係     
5.4  阻塞式IO模型  
5.5  非阻塞式IO模型         
5.6  訊號驅動式IO模型    
5.7  重複使用式IO模型    
5.8  非同步式IO模型         
5.9  輸入輸出模型複習      
 
第6章  資料庫設計與最佳化      
6.1  資料庫設計概述 
6.2  關聯式資料庫設計       
6.3  索引原理與最佳化       
6.4  資料庫引擎         
6.5  資料庫鎖   
6.6  鎖死 
6.7  交易 
6.8  巨量資料的最佳化       
6.9  非傳統資料庫     
6.10  資料庫中介軟體    
    
第7章  快取設計      
7.1  快取的收益         
7.2  快取的鍵與值     
7.3  快取的更新機制           
7.4  快取的清理機制 
7.5  快取的風險點     
7.6  快取的位置         
7.7  寫快取       

第8章  可靠性設計  
8.1  軟體可靠性概述 
8.2  軟體可靠性指標 
8.3  模組連接方式與可靠性                    
8.4  軟體故障模型     
8.5  可靠性設計     
    
第9章  應用保護      
9.1  應用保護概述     
9.2  隔離 
9.3  限流 
9.4  降級 
9.5  熔斷 
9.6  恢復 

第10章  前端高性能          
10.1  前端工作分析  
10.2  資源下載最佳化         
10.3  頁面解析最佳化         
10.4  惰性載入
10.5  預操作     

第11章  架構設計理論     
11.1  軟體架構風格  
11.2  軟體生命週期  

第12章  高性能架構實踐 
12.1  需求概述
12.2  許可權系統的相關理論      
12.3  模型設計
12.4  概要設計
12.5  資料層詳細設計         
12.6  快取詳細設計  
12.7  服務端詳細設計         
12.8  客戶端詳細設計         
12.9  MatrixAuth專案實踐複習


作者介紹


作者簡介

易哥

  畢業於浙江大學、山東大學,高階軟體系統架構師、網路工程師、資料庫工程師、軟體測試工程師、註冊電氣工程師。主要研究方向為機器學習、分散式演算法、容錯算法在無線傳感網路中的應用,相關論文獲得IEEE通信協會最佳論文獎。曾擔任網站技術部門負責人,具有豐富的互聯網開發經驗。先後設計和實現了眾多系統和平台,也是活躍的開源開發者。






相關書籍

設計師一定要學的 Bootstrap 5 RWD 響應式網頁設計--行動優先的前端技術

Adobe After Effects ACP 國際認證應考攻略 (適用2020/2021)

IoT物聯網應用 - 使用ESP32開發板與Arduino C程式語言 - 最新版(第三版) - 附MOSME行動學習一點通:評量、加值

用ESP32輕鬆學習DIY ChatGPT故事創作播放機實作秘笈 - 使用圖形化motoBlockly程式語言 - 附贈MOSME行動學習一點通:評量‧加值