您好,登錄后才能下訂單哦!
Spring Cloud Alibaba如何實現整合Sentinel?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
實現一個簡單的 整合 sentinel
,不涉及sentinel
的用法
1、下載 sentinel dashboard
https://github.com/alibaba/Sentinel/releases
注意:
默認會啟動
8080
端口,如果端口沖突,可以在啟動命令上加入-Dserver.port=新端口
默認用戶名和密碼[sentinel/sentinel
]
啟動控制臺可用的配置項
2、服務提供者和消費者引入sentinel依賴
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>
注意: 在這個里面查找 sentinel-core
的版本號,可以確定我們需要下載那個版本的 sentinel dashboard
3、配置控制臺信息
spring: sentinel: transport: # 控制臺的地址 dashboard: localhost:8080 # 與控制臺通訊的端口,默認是8719,不可用會一直+1,知道找到一個可用的 port: 8719 # 和控制臺保持心跳的ip地址 client-ip: 127.0.0.1 # 發送心跳的周期,默認是10s heartbeat-interval-ms: 10000
4、一個簡答的整合就整合完了,訪問資源,查看控制臺。
1、配置文件中加入 feign.sentinel.enabled=true
即可。
2、加入依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
3、對 Feign
接口的降級或限流等操作時,資源名稱的格式為:httpmethod:protocol://requesturl
1、在RestTemplate
上加入 @SentinelRestTemplate
注解。
2、配置文件中加入 resttemplate.sentinel.enabled: true
,默認就是 true
3、降級或限流時的處理
抄sentinel的官網描述,文本給出鏈接
@SentinelRestTemplate 注解的屬性支持限流(blockHandler, blockHandlerClass)和降級(fallback, fallbackClass)的處理。 其中 blockHandler 或 fallback 屬性對應的方法必須是對應 blockHandlerClass 或 fallbackClass 屬性中的靜態方法。 該方法的參數跟返回值跟 org.springframework.http.client.ClientHttpRequestInterceptor#interceptor 方法一致,其中參數多出了一個 BlockException 參數用于獲取 Sentinel 捕獲的異常。 比如上述 @SentinelRestTemplate 注解中 ExceptionUtil 的 handleException 屬性對應的方法聲明如下: public class ExceptionUtil { public static ClientHttpResponse handleException(HttpRequest request, byte[] body, ClientHttpRequestExecution execution, BlockException exception) { ... } }
1、@SentinelResource 注解用來標識資源是否被限流、降級。
2、一般推薦將 @SentinelResource 注解加到服務實現上
3、可以指定 blockHandler
或 fallback
,在發生異常時的處理。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。