天天看點

大流量限流與消峰方案

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

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

大流量限流與消峰方案

1、常見痛點:

連接配接資源耗盡、分布式緩存容量被撐爆、資料庫吞吐量降低,最終引起系統雪崩。2、應對高并發、大流量的正常手段:

擴容

動靜分離

緩存

服務降級

限流

限流方案:

一、限流算法

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

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

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

二、實際應用

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

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

消峰方案

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

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

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

二、異步調用需求

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