關于高并發(fā)的思考



常見高并發(fā)系統(tǒng)衡量指標
1、QPS 每秒查詢
Queries Per Second
Requests Per Second 每秒請求數(shù)
2、TPS 每秒事務
Transactions Per Second
一個事務是指一個客戶端向服務器發(fā)送請求然后服務器做出響應的過程。
3、RT 響應時間
Response Time
4、Concurrency 并發(fā)數(shù)
指系統(tǒng)同時能處理的請求數(shù)量
5、吞吐量
高并發(fā)其實考的是系統(tǒng)用戶量增加后,系統(tǒng)針對并發(fā)的設計和處理
高并發(fā)系統(tǒng)設計目標
高性能、高可用、高可擴展
高性能體現(xiàn)系統(tǒng)并行處理能力,有限的硬件投入下,提高性能節(jié)省成本。
高可用表示正常服務的時間。一般使用n9 99.99%可用
高可擴展 系統(tǒng)的擴展能力,流量高峰時能否在短時間內完成擴容,平穩(wěn)承接峰值流量。
性能指標衡量
平均響應時間
TP90、TP99
吞吐量
可用性指標
幾個9
90%
99%
99.9%
99.99%
可擴展性指標
設計方案
縱向和橫向兩個維度
縱向
提高單機處理能力
1、提高單機硬件性能:加內存、cpu核數(shù)、存儲容量,磁盤升級
2、提高單機軟件性能:使用緩存減少IO次數(shù),使用并發(fā)和一步的方式增加吞吐量。
橫向
1、分層架構
2、各層水平擴展 無狀態(tài)水平擴容,有狀態(tài)做分片路由
高性能實踐方案
1、集群部署、通過負載均衡減輕單機壓力
2、多級緩存 包括靜態(tài)數(shù)據使用CDN、本地緩存、分布式緩存等
3、分庫分表和索引優(yōu)化
4、使用NOSQL數(shù)據庫
5、異步化 mq
6、限流
7、流量削峰填谷 mq
8、并發(fā)處理
9、預計算
10、緩存預熱
11、減少io次數(shù)
12、減少io數(shù)據量
13、程序邏輯優(yōu)化
14、池化技術
15、gc優(yōu)化
16、鎖選擇 樂觀鎖、分段鎖
高可用實踐方案
1、對等節(jié)點的故障轉移
2、非對等節(jié)點的故障轉移 通過心跳檢測實施主備切換
3、接口超時設置 重試和冪等設計
4、降級處理 保證核心服務
5、限流處理 超出系統(tǒng)處理能力的請求直接拒絕
6、mq消息可靠性保證 生產者重試、broker持久化,消費者的ack確認機制
7、灰度發(fā)布
8、監(jiān)控報警
9、災備演練
高可擴展性實踐方案
合理的分層架構
存儲層拆分
業(yè)務層拆分
選擇簡單、合適的方案,按需調整