我只是想爲每個帳戶計劃制定API請求速率限制,假設我們有用戶和每個用戶都有一個計劃,每天他們有多少API請求可以使。如何在環回中製作API速率限制政策
那麼現在,我如何在環回3.x中制定API限制策略。
謝謝
我只是想爲每個帳戶計劃制定API請求速率限制,假設我們有用戶和每個用戶都有一個計劃,每天他們有多少API請求可以使。如何在環回中製作API速率限制政策
那麼現在,我如何在環回3.x中制定API限制策略。
謝謝
這樣的政策只能*用數據庫,如redis/memcached。對於我的項目,我依賴於基於Redis的redback。它有一個內置的RateLimit helper(等等),它負責處理一些raceconditions和原子事務。
*如果你沒有一個數據庫,你可以將其存儲在存儲器(在散列或數組)和使用間隔刷新它,但我會用紅背:)
如果你打算使用迴環對IBM Bluemix主機可以使用他們的API Connect服務,包括與API level throttling,監控,計費API和許多其他API管理功能,客戶計劃依據的政策。
StrongLoop API Microgateway由API Connect使用,但現在開放源代碼(2017年4月)。
因爲Loopback只是Express上的一個層,所以您可以使用Express lib。
速率限制單個獨立的環回服務器上,你可以使用這些快捷庫之一:
如果你打算使用這個迴環集羣上您需要將服務器的API調用計數存儲爲每個用戶或用戶會話的共享服務器狀態的一部分。這個選擇的武器是Redis,因爲它是可以縮放的內存數據存儲的高性能。支持Redis的限速快遞庫包括:
最後,您還可以實現的速率限制反向代理。見Nginx Rate Limiting