集羣限流架構設計

一、單機版

1、在本地進程中進行統計,使用常用限流方式

2、Nginx中限流,使用lua腳本統計經過該Nginx的實例和接口量

 

二、集羣版

A、B、C三個服務端節點組成集羣,需要將某個接口限制TPS最大爲1萬;

使用一個統計監控服務節點(主備方式做高可用),A、B、C三個節點每秒向統計節點發送每次統計結果數據:請求量、正確處理量、每次請求耗時等;

統計監控服務節點每分鐘統計一次,得出每個節點應該分配多少請求量,三個節點每秒從統計節點獲取一次該請求量的值,然後在本地進行單機限流。

1、通過耗時進行分配方案:A平均每次請求耗時10ms、B 50ms、C 100ms;

三個數相加 10+50+100=160;

那麼三個節點獲取到的請求量權重比則爲:

A:160-10=150,範圍爲(0, 150]

B:150+(160-50)=260,範圍爲(150, 260]

C:260+(160-100)=320,範圍爲(260, 320]

從而可以得出每個節點的權重,也就可以得出1萬次請求中,每個節點應該分配多少次,每分鐘更新次結果。

 

回頭研究下sentinel哨兵框架做限流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章