上一篇文章我们介绍了整合 Sentinal 实现服务降级,点此直达
这篇文章我们讲一下 Sentinel 控制台的使用,怎么设置流量控制和熔断降级
示例代码地址:https://github.com/saysky/nacos-spring-cloud-example
一、安装 Sentinel 控制台
官方文档地址:点此
1、下载地址:
这里选择下载官网最新版 jar 包,点此下载
重命名 jar 文件 sentinel-dashboard.jar
2、运行 jar
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
备注:需要 jdk1.8+
3、查看控制台页面
访问 localhost:8080 sentinel 控制台页面,账号密码都是 sentinel
二、项目配置文件加入 sentinel 配置
接着上篇文章的代码写
application.yml 里添加 10-13行
server:
port: 8081
spring:
application:
name: demo-consumer-service
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
sentinel:
transport:
port: 8720
dashboard: 127.0.0.1:8080
feign:
sentinel:
# 开启Sentinel对Feign的降级
enabled: true
management:
endpoints:
web:
exposure:
include: "*"
主要是这条
spring.cloud.sentinel.transport.dashboard=127.0.0.1:8080
重启 consumer 服务,然后稍等几秒,刷新 Sentinel 控制台,可以看到我们的服务向 Sentinel 控制台通知了接口调用记录
三、流量控制
1、控制台簇点链路
2、流控设置,设置流量控制
我们点击流控可以设置QPS和线程数
比如我需要设置1秒钟只允许1个请求访问 /user/{id} 这个接口
我这里手动只需要设置QPS为1,表示1秒钟内第一次可以访问,后面的都直接快速失败
我启动一下provider,然后用 jmeter 压测一下,一个线程循环100次,预期效果是第一次访问成功,后面的都会直接失败
看来是符合我们预期的
顺便看一下表格形式的结果统计
根据时间来看,第一次耗费12毫秒,后面的基本都是2-3毫秒
四、熔断设置
所谓熔断就是系统自动能推测出服务方接口调用大概率会失败,所以就不去调用了,直接调用 fallback
通过 Sentinel 控制台可以简单设置
设置完成后,我给 provider 的代码里加一个异常,让其100%报错,看我们的 provider 会被调用几次,预期是5次
然后重启 provider,使用 jmeter 1个线程循环100遍调用 /user 接口
看 idea 控制台,可以看到 provider 只被调用了5次,剩下的95次是直接降级的(没有调用provider,直接调用fallback)
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏