springcloud使用sentinel文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel
问题:sentinel是工作原理
1、首先下载sentinel jar包
2、启动命令
nohup java -Dserver.port=8070 -Dcsp.sentinel.dashboard.server=192.168.5.13:8070 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.6.1.jar > /dev/null 2>&1 &
默认是8080端口,启动后默认密码是sentinel sentinel,正式上应该考虑修改密码
3、在需要的微服务上(客户端)进行整合
加入依赖:
<!-- sentinel限流--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>
配置文件上加上:
spring: cloud: sentinel: transport: port: 8719 dashboard: 192.168.5.13:8070 #和刚才启动命令设置的一样,能够访问就行
4、先访问客户端上的接口,才能在sentinel控制面板上看到客户端被关联上,然后按需进行设置流量控制或者降级或者其他功能
5、但是我们设置好之后,每次客户端进行重启,辛苦设置的规则就没了,因为sentinel默认是将设置存储在运行内存中,所以需要换种存储规则方式,官方文档:https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel
6、我是和nacos搭配,所以存储在nacos上,本来想通过nacos和sentinel双向互通(sentinel设置规则可存储在nacos,nacos设置规则可推送到sentinel)。发现双向有点麻烦,还是采用单向nacos设置推送到sentinel,毕竟我不需要太复杂的规则设置。
7.sentinel全局统一异常处理