Kong Rate Limiting 外掛程式詳解

2021-10-06 14:16:39 字數 2527 閱讀 2952

基本描述:

屬性描述

外掛程式作用域

服務、路由、全域性

適用協議

配置資訊:

屬性描述

引數描述

name

外掛程式名稱、此處為rate-limiting

service_id

繫結的服務id

route_id

繫結的路由id

enabled

是否啟用該外掛程式,預設是true

consumer_id

繫結的消費者id

config.second

每秒的限流數

config.minute

每分鐘的限流數

config.hour

每小時的限流數

config.day

每天的限流數

config.month

每月的限流數

config.year

每年的限流數

config.limit_by

限制次數的衡量標準,可以取consumer、credential 或 ip,如果不能識別consumer或credential,都按照ip計數,預設是consumer

config.policy

限流累加器的計數策略,可以取local、cluster 或 redis,預設是cluster

config.fault_tolerant

當第三方資料來源出錯時,是否啟用限流功能,取true時會禁用限流功能,預設是true

config.hide_client_headers

是否隱藏訊息響應頭,預設是false

config.redis_host

redis伺服器位址

config.redis_port

redis伺服器端口

config.redis_password

redis伺服器密碼

config.redis_timeout

連線redis伺服器超時時間

config.redis_database

redis資料庫

使用詳情

curl -x post http://kong:8001/services//plugins --data "name=rate-limiting" --data "config.second=5" --data "config.hour=10000"
curl -x post http://kong:8001/routes//plugins --data "name=rate-limiting" --data "config.second=5" --data "config.hour=10000"
curl -x post http://kong:8001/consumers//plugins --data "name=rate-limiting" --data "config.second=5" --data "config.hour=10000"
x-ratelimit-limit-second: 5

x-ratelimit-remaining-second: 4

x-ratelimit-limit-minute: 10

x-ratelimit-remaining-minute: 9

模式

優點描述

cluster

準確,不需要依賴其他元件

相對來說效能影響最大的,每個請求都會強制對底層的資料來源進行讀寫操作

redis

準確,效能影響比cluster模式小

需要額外安裝redis,相比local模式效能影響大

local

效能影響最小

不太準確,除非在kong之前使用hash一致性負載均衡器

事務粒度

這個場景中,不能選用local策略,應該在clusterredis策略中考量,推薦是先嘗試使用cluster策略,如果效能急速下降,則切換成redis策略,需要注意的是,指標資料無法從原有資料來源切換到redis,通常來說,短週期指標(如秒、分)不受影響,長週期指標(月)可能會有影響,所以切換資料來源時需要小心

後端保護模式

這種場景中因為準確性不太重要,可以使用local策略,這需要多些嘗試才能找到合適的值,比如使用者希望配置限流每秒100個請求,總共有5個kong節點,設定local策略,每秒30個請求,大致可以滿足需求,如果覺得返回的失敗過於頻繁,可以適當增大閾值

需要注意的是,當增加kong節點時,會增加總請求數;同理減少kong節點時,會降低總請求數,所以調整節點數時需要同步調整閾值

在kong節點前使用hash一致性負載均衡器可以避免上述的問題,因為它會保證相同的使用者會路由到指定的kong節點,保證資料準確,並且不受節點縮放的影響

通常情況下,真實的請求數會大於限流的閾值,但是它還是能有效的防止攻擊,並且保持最佳效能

vue better scroll外掛程式使用詳解

什麼是 better scroll better scroll 是乙個移動端滾動的解決方案,它是基於 iscroll 的重寫,它和 i 的主要區別在 這裡 better scroll 也很強大,不僅可以做普通的滾動列表,還可以做輪播圖 picker 等等。在需要的檔案中新增 import bscor...

Web Uploader檔案上傳外掛程式使用詳解

webuploader檔案上傳元件在現代的瀏覽器裡面能充分發揮html5的優勢,同時又不摒棄主流ie瀏覽器,沿用原來的flash執行時,相容ie6 ios 6 android 4 兩套執行時,同樣的呼叫方式,可供使用者任意選用。採用大檔案分片併發上傳,極大的提高了檔案上傳效率。一 功能介紹 分片 併...

weiphp微信開發教程 留言板外掛程式開發詳解

1 功能分析 2 新建weiphp外掛程式 第一步,在weiphp後台管理頁面建立乙個外掛程式,記得把是否需要配置項和是否需要管理列表兩個選項都選為 是 第二步,安裝建立好的外掛程式,點選外掛程式右側的安裝鏈結即可 3 檢視 結構 外掛程式建立成功後,weiphp框架會自動在addons目錄下生成乙...