整理了几个@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失效报错。
多点几次
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通