高併發相關常用的一些指標有響應時間(response time),吞吐量(throughput),每秒查詢率qps(query per second),併發使用者數等。
吞吐量:單位時間內處理的請求數量。
qps:每秒響應請求數。在網際網路領域,這個指標和吞吐量區分的沒有這麼明顯。
1. 採用前後端分離的模式,前端專案單獨部署到伺服器上面
2. 前端對請求介面進行置灰操作,等到這個時間點再開啟點選
3. 前端加入cdn 加速服務
4. 前端引入nginx,如果不夠,加入集群nginx,還不行,直接上lvs
5. 前端對訪問的url 進行特殊處理,md5加密請求後台,或加入特殊的字元去請求後台,後台識別到進行訪問,否則直接返回null
6.前端限流:這個很簡單,一般秒殺不會讓你一直點的,一般都是點選一下或者兩下然後幾秒之後才可以繼續點選,這也是保護伺服器的一種手段
1. 服務單一原則,秒殺就是秒殺服務,商品就是商品服務,乙個服務掛了,不至於把其他服務搞崩潰
2. redis做集群,讀多寫少,redis集群,主從同步、讀寫分離還搞點哨兵,開啟持久化直接無敵高可用!
3.nginx大家想必都不陌生了吧,這玩意是高效能的web伺服器,併發也隨便頂幾萬不是夢,但是我們的tomcat只能頂幾百的併發呀,那簡單呀負載均衡嘛,一台服務幾百,那就多搞點,在秒殺的時候多租點流量機。
4. 秒殺的時候肯定是涉及到後續的訂單生成和支付等操作,但是都只是成功的幸運兒才會走到那一步,那一旦100個產品賣光了,return了乙個false,前端直接秒殺結束,然後你後端也關閉後續無效請求的介入了。
5. 庫存預熱, 秒殺前你通過定時任務或者運維同學提前把商品的庫存載入到redis中去,讓整個流程都在redis裡面去做,然後等秒殺介紹了,再非同步的去修改庫存就好了。
6.削峰填谷mq你可以把它放訊息佇列,然後一點點消費去改庫存就好了嘛,不過單個商品其實一次修改就夠了,我這裡說的是某個點多個商品一起秒殺的場景
7. 加入分布式鎖,多個請求來的時候,可以防止超賣問題
8. 限流&降級&熔斷&隔離,
原文入口
高併發相關常用的一些指標有響應時間(response time),吞吐量(throughput),每秒查詢率qps(query per second),併發使用者數等。
吞吐量:單位時間內處理的請求數量。
qps:每秒響應請求數。在網際網路領域,這個指標和吞吐量區分的沒有這麼明顯。
1. 採用前後端分離的模式,前端專案單獨部署到伺服器上面
2. 前端對請求介面進行置灰操作,等到這個時間點再開啟點選
3. 前端加入cdn 加速服務
4. 前端引入nginx,如果不夠,加入集群nginx,還不行,直接上lvs
5. 前端對訪問的url 進行特殊處理,md5加密請求後台,或加入特殊的字元去請求後台,後台識別到進行訪問,否則直接返回null
6.前端限流:這個很簡單,一般秒殺不會讓你一直點的,一般都是點選一下或者兩下然後幾秒之後才可以繼續點選,這也是保護伺服器的一種手段
1. 服務單一原則,秒殺就是秒殺服務,商品就是商品服務,乙個服務掛了,不至於把其他服務搞崩潰
2. redis做集群,讀多寫少,redis集群,主從同步、讀寫分離還搞點哨兵,開啟持久化直接無敵高可用!
3.nginx大家想必都不陌生了吧,這玩意是高效能的web伺服器,併發也隨便頂幾萬不是夢,但是我們的tomcat只能頂幾百的併發呀,那簡單呀負載均衡嘛,一台服務幾百,那就多搞點,在秒殺的時候多租點流量機。
4. 秒殺的時候肯定是涉及到後續的訂單生成和支付等操作,但是都只是成功的幸運兒才會走到那一步,那一旦100個產品賣光了,return了乙個false,前端直接秒殺結束,然後你後端也關閉後續無效請求的介入了。
5. 庫存預熱, 秒殺前你通過定時任務或者運維同學提前把商品的庫存載入到redis中去,讓整個流程都在redis裡面去做,然後等秒殺介紹了,再非同步的去修改庫存就好了。
6.削峰填谷mq你可以把它放訊息佇列,然後一點點消費去改庫存就好了嘛,不過單個商品其實一次修改就夠了,我這裡說的是某個點多個商品一起秒殺的場景
7. 加入分布式鎖,多個請求來的時候,可以防止超賣問題
8. 限流&降級&熔斷&隔離,
原文入口
如何應對高併發?
參照乙個大佬的文章,我也寫一篇高併發的文章,一下這門高階的現象,以及一些解決措施。乙個關於高併發的問題 那位大佬說 如果真的幹過高併發系統的人,面試官是絕對不會對你提出這個問題的,否則就是他太不明智了。至於為嘛這樣說呢,因為如果設計乙個高併發系統,這句話就是錯誤的了,因為在脫離了業務的系統架構中都是...
支付結算系統如何應對高併發 熱點賬戶等問題
網際網路金融系統的核心是支付結算,而支付結算的基礎又是賬戶系統。金融賬戶系統的特點是併發量大 響應快 交易金額大,熱點賬戶問題突出。乙個合格的賬戶系統既要解決上述問題,又必須絕對保證資金安全。作為宜信這家網際網路金融公司的支付結算中心,其賬戶系統也必須具備上述特徵。宜信支付結算賬戶體系是客戶 使用者...
支付結算系統如何應對高併發 熱點賬戶等問題
網際網路金融系統的核心是支付結算,而支付結算的基礎又是賬戶系統。金融賬戶系統的特點是併發量大 響應快 交易金額大,熱點賬戶問題突出。乙個合格的賬戶系統既要解決上述問題,又必須絕對保證資金安全。作為宜信這家網際網路金融公司的支付結算中心,其賬戶系統也必須具備上述特徵。宜信支付結算賬戶體系是客戶 使用者...