本文共 3288 字,大约阅读时间需要 10 分钟。
Sentinel 是 Alibaba 的一个开源框架,是 Spring Cloud Alibaba 的一个子项目,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
和 Hystrix 的功能类似,但他和 Hystrix 的区别如下 以上图片来自网络org.springframework.boot spring-boot-starter-parent 2.2.5.RELEASE
Finchley.RELEASE
org.springframework.cloud spring-cloud-alibaba-dependencies 0.9.0.RELEASE pom import org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import
org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-alibaba-sentinel
spring: application: name: sentinel cloud:# nacos:# discovery:# server-addr: localhost:8848 sentinel: transport: dashboard: localhost:8718 eager: trueserver: port: 8889 tomcat: max-threads: 20
@RestControllerpublic class IndexController { @RequestMapping("/index") public String index() { return "index"; } @SentinelResource(value = "getIndexConsole",blockHandler = "getOrderQpsEx") @RequestMapping("/getIndexConsole") public String getIndexConsole() { return "getIndexConsole"; } @SentinelResource(value = "getOrderConsole",fallback = "getFallBackEx") @RequestMapping("/getOrderConsole") public String getOrderConsole() { try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } return "getOrderConsole"; } public String getOrderQpsEx(BlockException e) { return "接口已经被限流"; } public String getFallBackEx() { return "接口已经被熔断"; }}
@SentinelResource
为配置失败后执行的方法,他有几个参数
fallback
服务降级(超时,异常)执行方法 blockHandler
限流/熔断执行方法 sentinel-dashboard 是官方提供的控制台,可以方便地通过界面的方式进行操作,下载地址
https://github.com/huangliangyun/alibaba-learning/blob/master/spring-cloud-alibaba/sentinel-dashboard-1.6.2.jar
下载之后通过以下命令启动
java -Dserver.port=8718 -Dcsp.sentinel.dashboard.server=localhost:8718 -Dproject.name=sentinel-dashboard -Dcsp.sentinel.api.port=8719 -jar sentinel-dashboard-1.6.2.jar
-Dserver.port=8718
控制台端口sentinel 控制台是一个 spring boot 程序,可以通过这个端口访问控制台。
-Dcsp.sentinel.dashboard.server=localhost:8718
向控制台发送心跳包的控制台地址,指定控制台后客户端会自动向该地址发送心跳包。 -Dproject.name=sentinel-dashboard
指定Sentinel控制台程序的名称 -Dcsp.sentinel.api.port=8719
客户端提供给Dashboard访问或者查看Sentinel的运行访问的参数,默认8719 启动控制台后,可访问以下地址,账号密码都是 sentinel
http://localhost:8718/#/dashboard
资源名
接口名称,比如在示例代码里面的 getIndexConsole
Qps
接口每秒最多处理几个请求 线程数
接口最多允许几个线程处理 单击阈值
如果数值为 2 表示每秒只能处理 2 个请求 https://github.com/huangliangyun/alibaba-learning/tree/master/spring-cloud-alibaba
—— 完
最后,感谢您阅读我的文章,如果觉得对您有帮助,麻烦点点关注,您的鼓励和支持是我最大的动力,我会坚持每天更新,如果有什么错误,麻烦指正,最后祝您工作顺利,生活愉快!
公众号:【星尘Pro】
github:
推荐阅读
https://github.com/alibaba/Sentinel
转载地址:http://ayfsi.baihongyu.com/