微服務 非功能質量需求的具體指標。

2021-09-10 17:44:55 字數 2272 閱讀 6633

非功能質量需求的具體指標針對不同的系統主要分為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 需求分析和整理階段 梳理所有用例和場景,並抽象出系統面向的使用者和角色,梳理對於每個使用者和角色應該提供的功能需求,非功能質量需求和限制。其中非功能質量需求包括 高可用性 高效能 可伸縮 可擴充套件 安全性 穩定性 健壯性 可測試性...

軟體設計 質量屬性 非功能性需求

當你在收集需求的時候 人們會很樂意給你乙個願望清單,寫滿了他們想要軟體系統所完成的事,也有完善的方法以使用者故事 用例 傳統的需求規格書 驗收標準等形式來捕捉這些功能需求 但是那些討厭的非功能性需求呢?非功能性需求通常被看做是能力,主要跟服務質量有關,也就是乙個軟體的質量屬性,下面大致介紹下 常見的...

軟體架構的非功能需求

非功能需求指功能方面以外的一切需求。要想讓軟體具有高質量,真正服務於使用者,單純滿足功能需求是不夠的,還要滿足非功能需求。非功能需求與功能需求一樣重要。非功能需求包含以下幾種觀點 非功能需求對開發 運維以及計算機資源的高效運用有著很大的影響。另外,在發布後的運維階段,比較大的問題多是由效能 系統宕機...