非功能質量需求的具體指標針對不同的系統主要分為4部分:應用伺服器、資料庫、快取和訊息佇列,本文會總結並列出這4部分指標,以幫助讀者在實際生產實踐中做非功能質量需求的設計方案。
應用伺服器
應用伺服器是服務的入口,請求流量從這裡進入系統,資料庫、快取和訊息佇列的訪問量取決於應用伺服器的訪問量。對應用伺服器的訪問量進行評估至關重要,應用伺服器主要關心每秒請求的峰值及對請求的響應時間等指標,通過這些指標可以評估我們需要的應用伺服器資源的數量。
部署結構的相關指標如下表所示。
序號部署結構
1負載均衡策略
2高可用策略
3i/o模型(nio/bio)
4執行緒池模型
5執行緒池中的執行緒數量
6是否多業務混合部署
容量和效能的相關指標如下表所示。
序號容量和效能
1每天的請求量
2各界面的訪問峰值
3平均的請求響應時間
4最大的請求響應時間56
請求的大小
7網絡卡的i/o流量
8磁碟的i/o負載
9記憶體的使用情況
10cpu的使用情況
其他相關指標如下表所示。
序號其他指標
1請求的內容是否包含大物件
2gc收集器的選型和配置
資料庫根據應用層的訪問量和訪問峰值,計算出需要的資料庫資源的吞吐量、每天的資料總量等,由此來評估所需資料庫資源的數量和配置、部署結構等。
部署結構的相關指標如下表所示。
序號部署結構
1複製模型
2失效轉移策略
3容災策略
4歸檔策略
5讀寫分離策略
6分庫分表(分片)策略
7靜態資料和半靜態資料是否使用快取
8有沒有考慮穿透並壓垮資料庫的情況
9快取失效和快取資料預熱策略
容量和效能的相關指標如下表所示。
序號容量和效能
1當前的資料容量
2每天的資料增量(預估容量)
3每秒的讀峰值
4每秒的寫峰值
5每秒的事務量峰值
其他相關指標如下表所示。
序號其他指標
1查詢是否走索引
2有沒有大資料量的查詢和範圍查詢
3有沒有多表關聯,關聯是否用到索引
4有沒有使用悲鎖,是否可以改造成樂觀鎖,是否可以利用資料庫內建行級鎖
5事務和一致性級別
6使用得jdbc資料來源型別及連線數等配置
7是否開啟jdbc診斷日誌
8有沒有儲存過程
9伸縮策略(分割槽表、自然時間分表、水平分庫分表)
10水平分庫分表實現方法(客戶端、**、nosql)
快取根據應用層的訪問量和訪問峰值,通過評估熱資料佔比,計算快取資源的大小並估算快取資源的峰值,由此來計算所需快取資源的數量、部署結構、高可用方案等。
部署結構的相關指標如下表所示。
序號部署結構
1複製模型
2失效轉移
3持久策略
4淘汰策略
5執行緒模型
6預熱方法
7雜湊分片策略
容量和效能的相關指標如下表所示。
序號容量與效能
1快取內容的大小
2快取內容的數量
3快取內容的過期時間
4快取的資料結構
5每秒的讀峰值
6每秒的寫峰值
其他相關指標如下表所示。
序號其他指標
1冷熱資料比例
2是否有可能發生快取穿透
3是否有大物件
4是否使用快取實現分布式鎖
5是否使用快取支援的指令碼(lua)
6是否避免了race condition
7快取分片方法(客戶端、**、集群)
訊息佇列
根據應用層的平均訪問量和訪問峰值,計算出需要訊息佇列傳遞的資料量,進而計算出所需的訊息佇列資源的數量、部署結構、高可用方案等。
部署結構的相關指標如下表所示。
序號部署結構
1複製模型
2失效轉移
3持久策略
容量和效能的相關指標如下表所示。
序號容量與效能
1每天平均的資料增量
2訊息持久的過期時間
3每秒的讀峰值
4每秒的寫峰值
5每條訊息的大小
6平均延遲
7最大延遲
其他相關指標如下表所示。
序號其他指標
1消費者執行緒池模型
2雜湊分片策略
3訊息的可靠投遞
4消費者的處理流程和持久機制
非功能質量需求
服務呼叫冪等性實現 本文以下內容摘抄自 分布式服務架構 第三章 1 需求分析和整理階段 梳理所有用例和場景,並抽象出系統面向的使用者和角色,梳理對於每個使用者和角色應該提供的功能需求,非功能質量需求和限制。其中非功能質量需求包括 高可用性 高效能 可伸縮 可擴充套件 安全性 穩定性 健壯性 可測試性...
軟體設計 質量屬性 非功能性需求
當你在收集需求的時候 人們會很樂意給你乙個願望清單,寫滿了他們想要軟體系統所完成的事,也有完善的方法以使用者故事 用例 傳統的需求規格書 驗收標準等形式來捕捉這些功能需求 但是那些討厭的非功能性需求呢?非功能性需求通常被看做是能力,主要跟服務質量有關,也就是乙個軟體的質量屬性,下面大致介紹下 常見的...
軟體架構的非功能需求
非功能需求指功能方面以外的一切需求。要想讓軟體具有高質量,真正服務於使用者,單純滿足功能需求是不夠的,還要滿足非功能需求。非功能需求與功能需求一樣重要。非功能需求包含以下幾種觀點 非功能需求對開發 運維以及計算機資源的高效運用有著很大的影響。另外,在發布後的運維階段,比較大的問題多是由效能 系統宕機...