发布于2021-05-30 02:55 阅读(764) 评论(0) 点赞(4) 收藏(3)
在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过 RPC 相互调用,在 Spring Cloud 中可以用 RestTemplate + LoadBalanceClient 和 Feign 来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet 容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的 “雪崩” 效应。
为了解决这个问题,业界提出了熔断器模型。
阿里巴巴开源了 Sentinel 组件,实现了熔断器模式,Spring Cloud 对这一组件进行了整合。在微服务架构中,一个请求需要调用多个服务是非常常见的,如下图:
较底层的服务如果出现故障,会导致连锁故障。当对特定的服务的调用的不可用达到一个阀值熔断器将会被打开。
熔断器打开后,为了避免连锁故障,通过 fallback 方法可以直接返回一个固定值。
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
https://sentinelguard.io/zh-cn/
采用docker-compose快速部署alibaba sentinel流量卫士镜像
# 下载源码
git clone https://github.com/alibaba/Sentinel.git
# 编译打包
mvn clean package
注:下载依赖时间较长,请耐心等待。
cd sentinel-dashboard\target
## 端口默认8080, 可以在此启动脚本自行修改
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
打开浏览器访问:http://localhost:8080/#/dashboard/home
项目 | GITHUB | 码云 |
---|---|---|
MateCloud后端源码 | https://github.com/matevip/matecloud | https://gitee.com/matevip/matecloud |
Artemis前端源码 | https://github.com/matevip/artemis | https://gitee.com/matevip/artemis |
打开matecloud -> mate-core -> mate-starter-cloud -> pom.xml
<!-- 按需求开启sentinel -->
<dependency>
<groupId>vip.mate</groupId>
<artifactId>mate-starter-sentinel</artifactId>
</dependency>
打开matecloud/mate-core/pom.xml
打开matecloud -> mate-core -> mate-starter-cloud -> src -> main -> resources -> bootstrap.yaml
至此sentinel集成完毕,如果你想了解更多关于微服务的知识,请见下回分解。
送君一句话:防微杜渐,则可防患于未然
原文链接:https://blog.csdn.net/bufegar0/article/details/117250512
作者:niceboty
链接:http://www.javaheidong.com/blog/article/208089/6c1f6bb76811838ea70e/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!