前言 我們一般在做架構設計的時候,會經歷過三個階段:需求分析、概要設計和詳細設計。 1. 需求分析階段 : 主要梳理所有用例(Use case)和場景,並抽象出面向系統的用戶與角色,梳理出需求提供哪些功能與非功能的需求給這些用戶。 2. 概要設計階段 :根據需求分析的產物:核心需求,對整個系統進行模 ...
前言
我們一般在做架構設計的時候,會經歷過三個階段:需求分析、概要設計和詳細設計。
- 需求分析階段: 主要梳理所有用例(Use case)和場景,並抽象出面向系統的用戶與角色,梳理出需求提供哪些功能與非功能的需求給這些用戶。
- 概要設計階段:根據需求分析的產物:核心需求,對整個系統進行模塊劃分,並定義好模塊之間的交互關係。
- 詳細設計階段:通過多個視圖來描述系統的架構,包括但不局限於:邏輯系統、物理視圖、數據視圖、物理視圖
非功能需求
非功能的需求主要體現在高性能、高可用、可伸縮、可擴展、安全性等維度。
非功能指標 | 描述 |
---|---|
高性能 | 運行效率高、響應速度快、吞吐量高 |
可用性 | 縮短宕機時間、出錯恢復、SLA 線上可用時間 |
可伸縮性 | 垂直伸縮、水平伸縮 |
可擴展性 | 可插拔、組件重用 |
安全性 | 數據安全、加密、防攻擊 |
魯棒性 | 容錯性、可恢復性 |
非功能需求對應不同系統指標
非功能需求對應不同系統指標主要分為 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. 最大響應時間