1. 程式人生 > 程式設計 >架構設計思路

架構設計思路

file

前言

我們一般在做架構設計的時候,會經歷過三個階段:需求分析、概要設計和詳細設計。

  1. 需求分析階段: 主要梳理所有用例(Use case)和場景,並抽象出面向系統的使用者與角色,梳理出需求提供哪些功能與非功能的需求給這些使用者。
  2. 概要設計階段:根據需求分析的產物:核心需求,對整個系統進行模組劃分,並定義好模組之間的互動關係。
  3. 詳細設計階段:通過多個檢視來描述系統的架構,包括但不侷限於:邏輯系統、物理檢視、資料檢視、物理檢視

非功能需求

非功能的需求主要體現在高效能、高可用、可伸縮、可擴充套件、安全性等維度。

非功能需求對應不同系統指標

非功能需求對應不同系統指標主要分為 4 部分:

  • 應用伺服器
  • 資料庫
  • 快取
  • 訊息佇列

1. 應用伺服器

應用伺服器是請求的入口,所有流量都是通過應用伺服器來轉發的。主要關心 QPS 、RT 等指標。容量與效能相關指標如下所示

1. 每天的請求量
2. 各介面的訪問峰值
3. 平均響應時間
4. 最大響應時間
5. 請求大小
6. 網路卡與磁碟 I/O 負責
7. 記憶體使用情況
8. CPU 使用情況複製程式碼

2. 資料庫

部署結構相關指標

1. 複製模型
2. 失效轉移策略
3. 容災策略
4. 歸檔策略
5. 讀寫分離策略
6. 分庫分表策略複製程式碼

容量與效能相關指標如下所示

1. 當前資料容量
2. 預估資料容量
3. 每秒讀峰值
4. 每秒寫峰值
5. 每秒事務峰值複製程式碼

3. 快取

部署結構相關指標

1. 複製模型
2. 失效轉移
3. 持久策略
4. 淘汰策略
5. 執行緒模型複製程式碼

容量與效能相關指標

1. 快取內容大小
2. 快取內容數量
3. 快取內容過期時間
4. 快取資料結構
5. 每秒讀峰值
6. 每秒寫峰值複製程式碼

4. 訊息佇列

部署結構相關指標

1. 複製模型
2. 失效轉移
3. 持久策略複製程式碼

容量與效能相關指標

1. 每天平均資料增量
2. 訊息儲存時間
3. 每秒讀峰值
4. 每秒寫峰值
5. 每條訊息大小
6. 平均響應時間
7. 最大響應時間複製程式碼

參考

  • 分散式服務架構原理、設計與實戰