溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringCloud sentinel如何實(shí)現(xiàn)接口限流的方法

發(fā)布時(shí)間:2020-10-19 17:44:01 來(lái)源:億速云 閱讀:530 作者:小新 欄目:編程語(yǔ)言

這篇文章給大家分享的是有關(guān)SpringCloud sentinel如何實(shí)現(xiàn)接口限流的方法的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。

Sentinel是什么

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)。

1.啟動(dòng)Sentinel Dashboard

下載地址: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è)面

SpringCloud sentinel如何實(shí)現(xiàn)接口限流的方法

 到此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次

SpringCloud sentinel如何實(shí)現(xiàn)接口限流的方法

接下來(lái)測(cè)試限流的作用,點(diǎn)擊簇點(diǎn)鏈路,選擇要限流的接口,點(diǎn)擊流控

SpringCloud sentinel如何實(shí)現(xiàn)接口限流的方法

使用jmeter發(fā)起500次請(qǐng)求

SpringCloud sentinel如何實(shí)現(xiàn)接口限流的方法

限流生效

感謝各位的閱讀!關(guān)于SpringCloud sentinel如何實(shí)現(xiàn)接口限流的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI