Spring Cloud Alibaba整合Sentinel的實(shí)現(xiàn)步驟
一、需求
實(shí)現(xiàn)一個(gè)簡單的 整合 sentinel
,不涉及sentinel
的用法
二、實(shí)現(xiàn)步驟
1、下載 sentinel dashboard
https://github.com/alibaba/Sentinel/releases
注意:
默認(rèn)會(huì)啟動(dòng)
8080
端口,如果端口沖突,可以在啟動(dòng)命令上加入-Dserver.port=新端口
默認(rèn)用戶名和密碼[sentinel/sentinel
]
啟動(dòng)控制臺(tái)可用的配置項(xiàng)
2、服務(wù)提供者和消費(fèi)者引入sentinel依賴
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>
注意: 在這個(gè)里面查找 sentinel-core
的版本號,可以確定我們需要下載那個(gè)版本的 sentinel dashboard
3、配置控制臺(tái)信息
spring: sentinel: transport: # 控制臺(tái)的地址 dashboard: localhost:8080 # 與控制臺(tái)通訊的端口,默認(rèn)是8719,不可用會(huì)一直+1,知道找到一個(gè)可用的 port: 8719 # 和控制臺(tái)保持心跳的ip地址 client-ip: 127.0.0.1 # 發(fā)送心跳的周期,默認(rèn)是10s heartbeat-interval-ms: 10000
4、一個(gè)簡答的整合就整合完了,訪問資源,查看控制臺(tái)。
三、整合Feigen
1、配置文件中加入 feign.sentinel.enabled=true
即可。
2、加入依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
3、對 Feign
接口的降級或限流等操作時(shí),資源名稱的格式為:httpmethod:protocol://requesturl
四、整合 RestTemplate
1、在RestTemplate
上加入 @SentinelRestTemplate
注解。
2、配置文件中加入 resttemplate.sentinel.enabled: true
,默認(rèn)就是 true
3、降級或限流時(shí)的處理
抄sentinel的官網(wǎng)描述,文本給出鏈接
@SentinelRestTemplate 注解的屬性支持限流(blockHandler, blockHandlerClass)和降級(fallback, fallbackClass)的處理。 其中 blockHandler 或 fallback 屬性對應(yīng)的方法必須是對應(yīng) blockHandlerClass 或 fallbackClass 屬性中的靜態(tài)方法。 該方法的參數(shù)跟返回值跟 org.springframework.http.client.ClientHttpRequestInterceptor#interceptor 方法一致,其中參數(shù)多出了一個(gè) BlockException 參數(shù)用于獲取 Sentinel 捕獲的異常。 比如上述 @SentinelRestTemplate 注解中 ExceptionUtil 的 handleException 屬性對應(yīng)的方法聲明如下: public class ExceptionUtil { public static ClientHttpResponse handleException(HttpRequest request, byte[] body, ClientHttpRequestExecution execution, BlockException exception) { ... } }
五、@SentinelResource的用法
1、@SentinelResource 注解用來標(biāo)識資源是否被限流、降級。
2、一般推薦將 @SentinelResource 注解加到服務(wù)實(shí)現(xiàn)上
3、可以指定 blockHandler
或 fallback
,在發(fā)生異常時(shí)的處理。
六、代碼路徑
https://gitee.com/huan1993/spring-cloud-alibaba-parent/tree/master/sentinel
七、參考文檔
到此這篇關(guān)于Spring Cloud Alibaba整合Sentinel的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Spring Cloud Alibaba整合Sentinel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring Cloud Alibaba之Sentinel實(shí)現(xiàn)熔斷限流功能
- Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔斷的示例
- SpringCloud-Alibaba-Sentinel-配置持久化策略詳解
- SpringCloud-Alibaba-Sentinel服務(wù)降級,熱點(diǎn)限流,服務(wù)熔斷
- Spring Cloud Alibaba教程之Sentinel的使用
- Spring Cloud Alibaba使用Sentinel實(shí)現(xiàn)接口限流
- 淺談如何在項(xiàng)目中使用Spring Cloud Alibaba Sentinel組件
相關(guān)文章
Java實(shí)現(xiàn)字符串解析為日期時(shí)間的方法示例
這篇文章主要介紹了Java實(shí)現(xiàn)字符串解析為日期時(shí)間的方法,結(jié)合具體實(shí)例形式分析了java日期時(shí)間字符串的解析操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04Win11系統(tǒng)下載安裝java的詳細(xì)過程
這篇文章主要介紹了Win11如何下載安裝java,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05springboot+dubbo啟動(dòng)項(xiàng)目時(shí)報(bào)錯(cuò) zookeeper not connect
這篇文章主要介紹了springboot+dubbo項(xiàng)目啟動(dòng)項(xiàng)目時(shí)報(bào)錯(cuò) zookeeper not connected的問題,本文給大家定位問題及解決方案,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-06-06解決@PathVariable出現(xiàn)點(diǎn)號.時(shí)導(dǎo)致路徑參數(shù)截?cái)喃@取不全的問題
這篇文章主要介紹了解決@PathVariable出現(xiàn)點(diǎn)號.時(shí)導(dǎo)致路徑參數(shù)截?cái)喃@取不全的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08java中用float時(shí),數(shù)字后面加f,這樣是為什么你知道嗎
這篇文章主要介紹了java用float時(shí),數(shù)字后面加f,這樣是為什么你知道嗎?具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09詳解Java8新特性Stream之list轉(zhuǎn)map及問題解決
這篇文章主要介紹了詳解Java8新特性Stream之list轉(zhuǎn)map及問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09