微服务保护详细笔记(一):雪崩问题--Sentinel

目录

1.雪崩问题

1.1.雪崩问题产生原因:

1.2.雪崩问题解决方案

1.2.1.请求限流

1.1.2.线程隔离

1.1.3.服务熔断

1.3.微服务保护技术对比

1.4.Sentinel

1.4.1.介绍与安装

1.4.2.微服务整合


1.雪崩问题

1.1.雪崩问题产生原因:

比如查询购物车的业务,假如商品服务业务并发较高,占用过多Tomcat连接。可能会导致商品服务的所有接口响应时间增加,延迟变高,甚至是长时间阻塞直至查询失败。

此时查询购物车业务需要查询并等待商品查询结果,从而导致查询购物车列表业务的响应时间也变长,甚至也阻塞直至无法访问。而此时如果查询购物车的请求较多,可能导致购物车服务的Tomcat连接占用较多,所有接口的响应时间都会增加,整个服务性能很差, 甚至不可用。

依次类推,整个微服务群中与购物车服务、商品服务等有调用关系的服务可能都会出现问题,最终导致整个集群不可用。

这就产生了级联失败问题,也称雪崩问题

言简意赅的说:雪崩问题产生的原因是什么?
微服务相互调用,服务提供者出现故障或阻塞。
微服务调用者没有做好异常处理,导致自身故障。
调用链中的所有服务级联失败,导致整个集群故障。

那么我们解决问题的思路有哪些?
尽量避免服务出现故障或阻塞:
      - 保持代码的健壮性;
      - 保持网络畅通;
      - 能应对较多的并发请求;

服务调用者做好远程调用异常的后备方案,避免故障扩散

业务健壮性问题:

比如在查询购物车列表业务中,购物车服务需要查询最新的商品信息,与购物车数据做对比,提醒用户。大家设想一下,如果商品服务查询时发生故障,查询购物车列表在调用商品服 务时,是不是也会异常?从而导致购物车查询失败。但从业务角度来说,为了提升用户体验,即便是商品查询失败,购物车列表也应该正确展示出来,哪怕是不包含最新的商品信息。

1.2.雪崩问题解决方案

微服务保护的方案有很多,比如:
- 请求限流:限制流量在服务可以处理的范围内,避免因突发流量而故障。
- 线程隔离:控制业务可用的线程数量,将故障隔离在一定的范围内。
- 服务熔断:将异常比例接口过高的接口断开,拒绝所有请求,直接fallba

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值