做外贸都做哪些网站好免费,百度seo公司整站优化软件,中国免费域名注册平台,张店学校网站建设公司场景微服务会划分出多个模块#xff0c;模块之间的调用频率可能比较高#xff0c;这时可能会存在服务雪崩#xff08;一个服务失败#xff0c;导致整条链路的服务都失败的情形#xff09;的#xff0c;如图#xff1a;随着时间的推移#xff0c;从刚开始的C不可用变成了…场景微服务会划分出多个模块模块之间的调用频率可能比较高这时可能会存在服务雪崩一个服务失败导致整条链路的服务都失败的情形的如图随着时间的推移从刚开始的C不可用变成了最终的系统不可用此时我们应该寻找容错的办法来避免雪崩效应。容错的措施1.设置超时设置访问超时时间超时后返回错误2.限流限制访问的流量3.舱壁模式设置多个线程池来分散流量4.断路器模式采用一个中间服务如果A服务访问某个服务失败一定的次数中间服务就开启并停止A继续访问某服务一段时间后中间服务关闭A服务再次访问某服务如此往复。着重解释断路器的三态转换理解断路器的优势SentinelSentinel 是面向分布式服务架构的流量控制组件主要以流量为切入点从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性整合Sentinel添加依赖(actuator用来便于演示)dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId
/dependency搭建Sentinel控制台下载jar包sentinel-dashboard-1.6.2.jar运行java -jar sentinel-dashboard-1.6.2.jar将应用整合到控制台添加配置spring:cloud:sentinel:transport:dashboard: localhost:8080和Ribbon一样Sentinel也是懒加载我们访问应用中Controller中一个方法流控规则访问方法之后我们在簇点链路中可以为刚才访问的方法添加流控规则QPS:访问次数线程数调用这个api的线程数假设勾选了QPS,单机阈值是1直接当访问超过1就进行限流关联当设定的方法达到阈值就限流自己适用于如果一个读方法一个写方法我们可以控制优先读还是优先写。链路只记录指定链路上的流量适用于指定某个方法进行限流比较细粒度。Warm Up:可以让允许通过的流量缓慢增加可以设置预热时长即经过某个时长后达到阈值比较适用于秒杀等大访问量突增排队等待只适用于QPS设置时长后将请求排队等待适用于流量突然增加让流量均匀的增加。降级规则RT:秒级默认4900ms简单理解就是平均响应时间超出阈值并且在时间窗口内的请求大于设定的值次数触发降级直到时间窗口设定的值结束即异常比例秒级QPS大于阈值触发降级异常数分钟级异常数超过阈值触发降级热点规则在统计窗口统计时间内某个参数索引的位置访问超过阈值就会被限流。可以对请求方法的参数进行限制适用于某些参数访问非常高同时希望提升api可用性的场景。参数索引所使用的类型只能是基本类型总结本文介绍了引用Sentinel的引入和基本规则的配置后续将介绍系统规则和授权规则还有整合Feign客户端持久化规则推拉模式以及部分源码解读。后续会持续更新可以关注公众号: 阿清的日常后台留言会细致解答。