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