厦门网站推广步骤机构,深圳做网站优化工资多少,网上购物网站建设的实训报告,长春网站设计哪家好1.什么是雪崩
微服务之间相互调用#xff0c;因为调用链中的一个服务故障#xff0c;引起整个链路都无法访问的情况。
如何解决雪崩#xff1f;
超时处理#xff1a;请求超时就返回错误信息#xff0c;不会无休止等待仓壁模式#xff1a;限定每个业务能使用的线程数因为调用链中的一个服务故障引起整个链路都无法访问的情况。
如何解决雪崩
超时处理请求超时就返回错误信息不会无休止等待仓壁模式限定每个业务能使用的线程数避免耗尽整个tomcat的资源因此也叫线程隔离。断路器模式由断路器统计业务执行的异常比例如果超出阈值则会熔断该业务拦截访问该业务的一切请求。流量控制限制业务访问的QPS避免服务因流量的突增而故障。
2.Sentinel
2.1 什么是蔟点链路
当请求进入微服务时首先会访问DispatcherServlet然后进入Controller、Service、Mapper这样的一个调用链就叫做簇点链路。簇点链路中被监控的每一个接口就是一个资源。
默认情况下sentinel会监控SpringMVC的每一个端点Endpoint也就是controller中的方法因此SpringMVC的每一个端点Endpoint就是调用链路中的一个资源。如果其他也想被监控需要使用sentinel提供的SentinelResource注解来完成。
2.2 如何使用sentinel
引依赖
!--sentinel--
dependencygroupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-sentinel/artifactId
/dependency编写配置文案
server:port: 8088
spring:cloud: sentinel:transport:dashboard: localhost:8080向Controller发送请求才会被sentinel监控
2.3 什么是服务熔断什么是服务降级区别是什么
服务熔断是指当服务A调用的某个服务B不可用时上游服务A为了保证自己不受影响从而不再调用服务B直接返回⼀个结果减轻服务A和服务B的压力直到服务B恢复。服务降级是指当发现系统压力过载时可以通过关闭某个服务或限流某个服务来减轻系统压力这就是服务降级。 相同点 都是为了防⽌系统崩溃 都让⽤户体验到某些功能暂时不可⽤ 不同点 熔断是下游服务故障触发的降级是为了降低系统负载
2.3.1 什么是线程隔离
线程隔离调用者在调用服务提供者时给每个调用的请求分配独立线程池出现故障时最多消耗这个线程池内资源避免把调用者的所有资源耗尽。
3 流量控制-流控模式
主要是设置QPS每秒并发量和线程数等参与保护应用
3.1 流控模式-直接
直接统计当前资源的请求触发阈值时对当前资源直接限流也是默认的模式
3.2 流控模式-关联模式
关联统计与当前资源相关的另一个资源触发阈值时对当前资源限流 语法说明当/write资源访问量触发阈值时就会对/read资源限流避免影响/write资源。 使用场景比如用户支付时需要修改订单状态同时用户要查询订单。查询和修改操作会争抢数据库锁产生竞争。业务需求是优先支付和更新订单的业务因此当修改订单业务触发阈值时需要对查询订单业务限流。
3.3 流控模式-链路
链路统计从指定链路访问到本资源的请求触发阈值时对指定链路限流 使用场景有查询订单和创建订单业务两者都需要查询商品。针对从查询订单进入到查询商品的请求统计并设置限流 代码实现对需要实现的方法添加SentinelResource让他被监控
4 流量控制-流控效果
流控效果是指请求达到流控阈值时应该采取的措施包括三种
快速失败达到阈值后新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方式。warm up预热模式对超出阈值的请求同样是拒绝并抛出异常。但这种模式阈值会动态变化从一个较小值逐渐增加到最大阈值。排队等待让所有请求进入一个队列中然后按照阈值允许的时间间隔依次执行。后来的请求必须等待前面执行完成如果请求预期的等待时间超出最大时长则会被拒绝。
5 热点参数限流
之前的限流是统计访问某个资源的所有请求判断是否超过QPS阈值。而热点参数限流是分别统计参数值相同的请求判断是否超过QPS阈值。
6 线程隔离
线程池隔离给每个服务调用业务分配一个线程池利用线程池本身实现隔离效果 信号量隔离sentinel默认不创建线程池而是计数器模式记录业务使用的线程数量达到信号量上限时禁止新的请求。
7 熔断降级
熔断降级是解决雪崩问题的重要手段。其思路是由断路器统计服务调用的异常比例、慢请求比例如果超出阈值则会熔断该服务。即拦截访问该服务的一切请求而当服务恢复时断路器会放行访问该服务的请求。
断路器控制熔断和放行是通过状态机来完成的 状态机包括三个状态
closed关闭状态断路器放行所有请求并开始统计异常比例、慢请求比例。超过阈值则切换到open状态open打开状态服务调用被熔断访问被熔断服务的请求会被拒绝快速失败直接走降级逻辑。Open状态5秒后会进入half-open状态half-open半开状态放行一次请求根据执行结果来判断接下来的操作。 请求成功则切换到closed状态请求失败则切换到open状态
断路器熔断策略有三种慢调用、异常比例、异常数
7.1 慢调用
慢调用业务的响应时长RT大于指定时长的请求认定为慢调用请求。在指定时间内如果请求数量超过设定的最小数量慢调用比例大于设定的阈值则触发熔断。 异常比例、异常数统计指定时间内的调用如果调用次数超过指定请求数并且出现异常的比例达到设定的比例阈值或超过指定异常数则触发熔断。
8 授权规则
授权规则可以对调用方的来源做控制有白名单和黑名单两种方式。