大流量限流與消峰方案

  • 2020 年 4 月 11 日
  • 筆記

當你的才華還撐不起你的野心時,你應該靜下心來學習。

當你的能力實現不了你的夢想時,你應該沉下心來練習。

1、常見痛點:

連接資源耗盡、分散式快取容量被撐爆、資料庫吞吐量降低,最終引起系統雪崩。2、應對高並發、大流量的常規手段:

擴容

動靜分離

快取

服務降級

限流

限流方案:

一、限流演算法

1、令牌桶演算法:主要用於限制流量的平均流入速率

2、漏桶演算法:限制流出速率

3、計數器演算法:實現搶購限流

二、實際應用

1、使用Google Guava(開源) 實現平均速率限流

2、使用Nginx實現接入層限流

消峰方案

一、基於時間分片的消峰方案,對峰值流量進行分散處理

1、活動分時段進行實現消峰,eg:將數量5000分10個時段處理

2、通過答題驗證實現消峰,可以成功阻擋秒殺器和降低峰值流量,eg:12306奇葩驗證碼

二、非同步調用需求

1、使用MQ實現系統之間的解耦,eg:Apache開源的ActiveMQ、阿里開源的RocketMQ、Kafka。