初识Sentinel
雪崩:
解决雪崩问题的常见方式有四种:
- 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待。
- 舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。
- 熔断降级: 由断路器统计业务执行的异常比例,如果超出闻值则会熔断该业务,拦截访问该业务的一切请求。
- 流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。
什么是雪崩问题?
- 微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。
如何避免因瞬间高并发流量而导致服务故障?
- 流量控制
如何避免因服务故障引起的雪崩问题?
- 超时处理
- 线程隔离
- 降级熔断
限流规则
簇点链路
簇点链路:就是项目内的调用链路,链路中被监控的每个接口就是一个资源。默认情况下sentinel会监控SpringMVC的每一个端点 (Endpoint),因此SpringMVC的每一个端点 (Endpoint)就是调用链路中的一个资源。
qps:每秒钟请求数量
用jmeter做压测
流控模式
在添加限流规则时,点击高级选项,可以选择三种流控模式:
直接:统计当前资源的请求,触发闯值时对当前资源直接限流,也是默认的模式
使用场景:比如用户支付时需要修改订单状态,同时用户要查询订单。查询和修改操作会争抢数据库锁,产生竞争,业务需求是有限支付和更新订单的业务,因此当修改订单业务触发闯值时,需要对查询订单业务限流。
关联:统计与当前资源相关的另一个资源,触发闯值时,对当前资源限流
链路:统计从指定链路访问到本资源的请求,触发闯值时,对指定链路限流
隔离和降级
授权规则
规则持久化
1.什么是熔断
2.什么是限流
3.什么是降级
4.sentinel组成部分,怎么搭建,简单的使用方式
5.sentinel对feign的支持,怎么实现
6.sentinel对restTemplate的集成,怎么实现。这个也同步看一下,后续可能有使用restTemplate进行接口调用的场景
熔断降级的规则,限流的规则。自己先按照自己能测试的方式配置规则即可。