您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關SpringCloud sentinel如何實現接口限流的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
Sentinel的官方標題是:分布式系統的流量防衛兵。從名字上來看,很容易就能猜到它是用來作服務穩定性保障的。對于服務穩定性保障組件,如果熟悉Spring Cloud的用戶,第一反應應該就是Hystrix。但是比較可惜的是Netflix已經宣布對Hystrix停止更新。那么,在未來我們還有什么更好的選擇呢?除了Spring Cloud官方推薦的resilience4j之外,目前Spring Cloud Alibaba下整合的Sentinel也是用戶可以重點考察和選型的目標。
Sentinel的功能和細節比較多,一篇內容很難介紹完整。所以下面我會分多篇來一一介紹Sentinel的重要功能。本文就先從限流入手,說說如何把Sentinel整合到Spring Cloud應用中,以及如何使用Sentinel Dashboard來配置限流規則。通過這個簡單的例子,先將這一套基礎配置搭建起來。
下載地址:sentinel
啟動方式:java -Dserver.port=8888 -jar sentinel-dashboard-1.6.0.jar
可以通過-Dserver.port=8888來切換啟動的端口,-Dserver.servlet.session.timeout=7200: 用于指定 Spring Boot 服務端 session 的過期時間,如 7200 表示 7200 秒;60m 表示 60 分鐘,默認為 30 分鐘;
這里我碰到一個問題:使用最新的sentinel Dashboard 1.7.1.jar會出現問題
Sentinel Dashboard界面新增流控規則時報錯:失敗:invalid type
主要問題是Sentinel Dashboard的jar包版本過高,導致代碼里的sentinel-code版本與dashboard的版本不一致,最終報錯。
github上的issue:https://github.com/alibaba/Sentinel/issues/1236#issuecomment-571907232
啟動后輸入賬號密碼,全部為sentinel,進入主頁面
到此sentinel dashboard的啟動就完成了,接下來啟動項目
pom中加入
com.alibaba.cloudspring-cloud-starter-alibaba-sentinel2.1.1.RELEASE
在配置文件中加入相關配置
spring cloud: sentinel: transport: dashboard: localhost:8080
在項目中寫一個簡單接口
@GetMapping("/unLock") public String lock() throws Exception { return "success"; }
啟動項目就可以了,在dashboard查看前,先調用接口幾次,不然dashboard上可能看不到,這里我用jmeter請求了500次
接下來測試限流的作用,點擊簇點鏈路,選擇要限流的接口,點擊流控
使用jmeter發起500次請求
限流生效
感謝各位的閱讀!關于SpringCloud sentinel如何實現接口限流的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。