2017-01-22 102 views
1

我只是想爲每個帳戶計劃制定API請求速率限制,假設我們有用戶和每個用戶都有一個計劃,每天他們有多少API請求可以使。如何在環回中製作API速率限制政策

那麼現在,我如何在環回3.x中制定API限制策略。

謝謝

回答

1

這樣的政策只能*用數據庫,如redis/memcached。對於我的項目,我依賴於基於Redis的redback。它有一個內置的RateLimit helper(等等),它負責處理一些raceconditions和原子事務。

*如果你沒有一個數據庫,你可以將其存儲在存儲器(在散列或數組)和使用間隔刷新它,但我會用紅背:)

1

這是去訪問控制策略。

您可以通過由role resolver創建的自定義角色來處理此問題。

通過創建自定義角色並檢查該解析器回調(如果當前用戶超出限制速度)。

2

如果你打算使用迴環對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