颠勺微服务保护,小结一下

雪崩:微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。

处理方式:

超时处理:设定超时时间。

舱壁模式:限定每个业务能用的线程数,避免耗尽tomcat的资源。

熔断降级:路由器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的请求。

流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。预防高并发产生的雪崩。

服务保护技术:

Sentinel 

Hystrix

隔离策略:

信号量隔离

线程池/信号量隔离

熔断降级策略:

基于慢调用比例或者异常比例 

基于失败比率

限流

基于QPS,支持基于调用关系的限流  

有限的支持

流量整形

支持慢启动、匀速排队等待

不支持

控制台

开箱即用,可配置规则,查看秒级监控,机器发现等

不支持

为什么选用sentinel?

使用sentinel

导入依赖jar包、

配置sentinel地址端口、

浏览器打开sentinel使用

配置sentinel限流

流控模式:

直接:默认

关联:统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流。

链路:对请求的来源限流

流控效果:

请求达到流控阈值时采取的措施,

快速失败:抛出异常

Warm up:预热模式,初始阈值threshold/coldFactor,逐渐提高到threshold值。coldFactor默认3

排队等待:让所有请求进入队列,然后按照阈值允许的时间间隔依次执行。预期等待最大时间外的请求直接拒绝、抛异常。

热点参数限流:根据热度不同,控制QPS(不重要,一个一个配置效率低)

隔离和降级

限流尽量避免高并发服务故障,服务还会因为其他原因故障。防止雪崩要用隔离和降级。

都是对客户端(调用方)的保护。

Feign整合Sentinel降级(重要):

1、修改配置文件,开启feign对sentinel的支持

2、编写降级工厂类实现FallbackFactory(编写降级业务逻辑)

3、在启动类里注册Bean

4、在feign上写注解,指定降级工厂

线程隔离:

方式:线程池隔离,基于线程池模式

 信号量隔离(sentinel默认)基于计数器模式,简单开销小

断路器的三个状态:

关闭、打开、半开

熔断降级:解决雪崩的重要手段,断路器统计服务调用的异常比例、慢请求比例,超出阈值则熔断该服务。拦截一切该服务的请求,服务恢复时,断路器放行该服务的请求。

熔断策略

断路器熔断有3种

慢调用:超过指定时长的调用为慢调用,统计单位时长内的比例,超过阈值则熔断。

异常比例:统计单位时长内异常调用的比例,超过阈值则熔断。

异常数:统计单位时长内异常调用的次数,超过阈值则熔断。

授权规则

对调用来源做控制,分黑白名单。

白名单:来源在白名单内的调用者允许访问。

黑名单:来源在黑名单内的调用者不允许访问。

RequestOriginParser接口的parseOrigin来获取请求的来源的。

网关,通过过滤器加上标签。

控制台配置授权规则。

自定义异常结果:

BlockException包含很多子类,

规则管理的三种模式(了解)

原始模式:默认,保存在内存,重启服务失效。

pull模式:控制台将配置推送到sentinel客户端,保存在本地或者数据库。后面会定时查询,更新本地规则。

push模式:控制台将配置规则推送到远程配置中心,例如nacos。监听变更实时更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值