kong的插件: Response Rate Limiting

簡述

這也是一種限流的插件和Rate Limiting相似,但是有一定的區別。Response Rate Limiting是由後端服務控制頻率的減少,而Rate Limiting是由Kong完成的。
在這裏插入圖片描述

操作起來

環境準備

你應該有一個能正常使用的service和route,如果沒有可以參考https://blog.csdn.net/u014686399/article/details/100084613,我的試驗就是基於這個的

啓用插件
/routes/1972af43-5cb0-4c84-b15e-b96a2da52893/plugins POST
{
	"name":"response-ratelimiting",
	"config":{
		"limits":{
			"xmm":{
				"day":10
			}
		}
	}
}
  • 1972af43-5cb0-4c84-b15e-b96a2da52893 這是route的id
  • response-ratelimiting 插件的名字
  • xmm 這個是自定義的, 限制的名字
  • day這是表示這個路由一天能被訪問10次。具體還可以按照分鐘,秒,小時,年等官網
插件的說明

如果路由或者服務上沒有應用認證的插件(如base-auth,key-auth),kong會議client ip的維度統計。如果應用可會以consumer的維度統計。

後端服務改造一下

默認後端服務會接收到 X-Ratelimit-Remaining-Xmm 請求頭,表示還有剩餘多少次訪問,其中Xmm是我們定義的limit的名字。我們可以設置X-Kong-Limit作爲迴應,表示在剩餘值的基礎上減少多少。如 X-Kong-Limit: XMM=2,表示減少2;X-Kong-Limit: XMM=0,表示不減少;
在這裏插入圖片描述
下面是我的代碼:

    def get(self):
        self.print_header()
        self.set_header("X-Kong-Limit", "xmm=2") #重點部分
        self.render("index.html")
測試一下

在這裏插入圖片描述
圖中表示,剩餘值設置的是20,現在還剩8次

我再點擊8次
在這裏插入圖片描述


先寫到這裏了,有問題進QQ羣630300475

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