Project

General

Profile

CR #201 » SCS-021_系統效能與非功能程式設計規格.md

內容更新:內部稱謂去識別化(2026-10-18) - Redmine Admin, 10/18/2026 05:32 AM

 

SCS-021 系統效能與非功能(Performance/NFR)程式設計規格(跨域)

項目 內容
文件編號 SCS-021
版本 1.0
狀態 已核定(規格先行·跨域)
對應需求 BRD-003 效能(授權 P99 ≤ 200ms 等)、吞吐(≥ 1,000 TPS)、容量規劃、效能測試(12 項,對應 TRP-001 §10)
技術棧 Java 21 + Spring Boot 4.1.1(參 CSP-006);Redis 8 快取;Kafka 4.3.1 非同步;Oracle 權威+Postgres 讀模型(CQRS)
關聯文件 BRD-003、SAD-006 §4(容量)、TRP-001 §10、CSP-006

1. 對應需求(效能類 NFR,實測目標值)

類別 指標 目標 來源
效能 本行卡授權處理 P99 ≤ 200 ms BRD-003(G4/G5)
效能 交易路由決策 P99 ≤ 5 ms BRD-003(G4/G5)
效能 端到端授權(含機構往返)P95 ≤ 500 ms BRD-003(G5)
吞吐 授權交易(未分庫分表) ≥ 1,000 TPS BRD-003(G5)
吞吐 即時支付引擎 > 2,000 TPS BRD-003(G5)

其餘 NFR(可用性、容量規劃 3 項、效能測試 12 項)見 BRD-003 完整追蹤表,均對應 SAD-006 與 TRP-001 §10。


2. 效能設計策略

策略 說明 對應技術
快取 高頻讀取(產品參數、額度、卡狀態)經 Redis 8 快取,降低 Oracle 壓力 Redis 8(CSP-006)
連線池 HikariCP 連線池調校,避免連線耗盡 Spring Boot 4.1.1
非同步 通知、點數、對帳經 Kafka 事件解耦,削峰 Kafka 4.3.1(CSP-006)
CQRS 讀寫分離 寫側 Oracle(CC_*);讀側 Postgres(proj/rpt)承接高頻查詢 SAD-003 §9
Saga 協調 跨服務長事務經 common-saga 狀態機,避免分散式鎖定 common-saga
閘道限流 api-gateway(8100)限流/熔斷,保護下游 Spring Cloud 2025.1.3

3. 關鍵路徑效能目標

  • 授權路徑:api-gateway → bff → authorization-service →(快取命中)本地決策;P99 ≤ 200ms。Stand-in 降級時仍須維持目標(SCS-001 §8)。
  • 路由決策:≤ 5ms(純記憶體/快取查詢)。
  • 端到端:含機構(VISA/MC/NCCC)往返 P95 ≤ 500ms。

4. 容量與壓測

  • 容量模型:SAD-006 §4(容量規劃,對應 BRD-003 容量規劃 3 項)。
  • 壓測:依 TRP-001 §10 效能測試(12 項)產出 P95/P99 曲線,對比 §1 門檻。
  • 線性擴展:領域服務無狀態,橫向擴展(K8s HPA)因應 TPS 目標。

5. 測試案例(對應 TRP-001 §10)

  • 授權 P99/P95 壓測(BRD-003 效能目標)
  • 吞吐測試(≥ 1,000 TPS 授權、> 2,000 TPS 即時支付)
  • 快取失效/下游降級下的效能退化邊界

6. 已知限制(誠實揭露)

  • 上表 ≤ 200ms/≤ 500ms/≥ 1,000 TPS 為 BRD-003 目標值;實測須待服務實作後壓測驗證,目前尚無實測數據(規格先行)。
  • 分庫分表(sharding)與否影響吞吐上限(BRD-003 註「未分庫分表」前提下 ≥ 1,000 TPS),若客戶要求更高須提 CR。
  • 容量模型(SAD-006 §4)之具體假設(成長率、尖峰因子)待 SA 凍結。
(56-56/67)