1、使用Openresty進行限流, 使用漏桶原理進行設計
和路由系統設計類似。
LUA腳本去通過變量去redis取值,從redis中得到隊列的大小、漏和桶的大小。
然后通過比較,隊列大小與漏和桶進行比較,確定是否對此請求進行放行。
1、如果隊列大小大於桶直接返回錯誤。
2、如果隊列大於漏需要進行等待。
3、請求的等待時間取決於隊列的大小和漏的大小。
例如隊列是20,漏是5, 等待時間是 20 / 5 = 4s
這樣就可以做到先進入的請求先完成。
1、使用Openresty進行限流, 使用漏桶原理進行設計
和路由系統設計類似。
LUA腳本去通過變量去redis取值,從redis中得到隊列的大小、漏和桶的大小。
然后通過比較,隊列大小與漏和桶進行比較,確定是否對此請求進行放行。
1、如果隊列大小大於桶直接返回錯誤。
2、如果隊列大於漏需要進行等待。
3、請求的等待時間取決於隊列的大小和漏的大小。
例如隊列是20,漏是5, 等待時間是 20 / 5 = 4s
這樣就可以做到先進入的請求先完成。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。