整理了幾個@SentinelResource注解無法生效,配置sentinel頁面報錯的問題的注意點


首先pom.xml里加依賴

<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>

application.yml,根據自己的改一改

server:
port: 84

spring:
application:
name: nacos-order-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
sentinel:
enabled: true # 是否開啟。默認為 true 開啟
eager: true # 是否飢餓加載。默認為 false 關閉
transport:
dashboard: localhost:8080
port: 8179 #默認8179端口,假如被占用會自動從8179開始依次+1掃描,直至找到未被占用的端口
clientIp: 127.0.0.1

#消費者將要去訪問的微服務名稱
service-url:
nacos-server-service: http://nacos-payment-provider

nacos和sentinel都跑起來這里不多說了,能看到這兒肯定都知道怎么用了。

 

然后是關於@SentinelResource的用法,它容易報錯的幾個點這里說一下

 

 

 1.兩個方法都要用public不要用private,第一個方法不加會導致sentinel找不到getResult這個資源名,同樣的第二個不加會導致sentinel找不到這個方法然后報錯。

 2.兩個方法返回類型必須一樣。

 3.兩個方法的參數類型必須一樣,數量和參數類型要保持一致,注意第一個方法加了@PathVariable這個注解,這個只是url傳參用的不需要加。

 4.blockHandler的值必須與你的兜底方法,也就是第二個方法保持一致。

 5.第二個方法必須要加BlockException這個異常類參數。

以上說的5點一定要注意,不然會導致@SentinelResource失效報錯。

 

 

 

 

 

 

 多點幾次

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM