输入“/”快速插入内容

day05-服务保护和分布式事务

91890
359328
115
845
大家学习中如果碰到困难,可以加入黑马智学伴侣寻求帮助,有学习交流群,老师、同学在线答疑。还有独享的企业级项目,避免与人撞车。
对应B站视频:
在微服务远程调用的过程中,还存在几个问题需要解决。
首先是业务健壮性问题:
例如在之前的查询购物车列表业务中,购物车服务需要查询最新的商品信息,与购物车数据做对比,提醒用户。大家设想一下,如果商品服务查询时发生故障,查询购物车列表在调用商品服 务时,是不是也会异常?从而导致购物车查询失败。但从业务角度来说,为了提升用户体验,即便是商品查询失败,购物车列表也应该正确展示出来,哪怕是不包含最新的商品信息。
还有级联失败问题:
还是查询购物车的业务,假如商品服务业务并发较高,占用过多Tomcat连接。可能会导致商品服务的所有接口响应时间增加,延迟变高,甚至是长时间阻塞直至查询失败。
此时查询购物车业务需要查询并等待商品查询结果,从而导致查询购物车列表业务的响应时间也变长,甚至也阻塞直至无法访问。而此时如果查询购物车的请求较多,可能导致购物车服务的Tomcat连接占用较多,所有接口的响应时间都会增加,整个服务性能很差, 甚至不可用。
画板
依次类推,整个微服务群中与购物车服务、商品服务等有调用关系的服务可能都会出现问题,最终导致整个集群不可用。
画板
这就是级联失败问题,或者叫雪崩问题
还有跨服务的事务问题:
比如昨天讲到过的下单业务,下单的过程中需要调用多个微服务:
商品服务:扣减库存
订单服务:保存订单
购物车服务:清理购物车
这些业务全部都是数据库的写操作,我们必须确保所有操作的同时成功或失败。但是这些操作在不同微服务,也就是不同的Tomcat,这样的情况如何确保事务特性呢?
这些问题都会在今天找到答案。
今天的内容会分成几部分:
微服务保护
服务保护方案
请求限流
隔离和熔断
分布式事务
初识分布式事务
Seata
通过今天的学习,你将能掌握下面的能力:
知道雪崩问题产生原因常见解决方案
能使用Sentinel实现服务保护
理解分布式事务产生的原因
能使用Seata解决分布式事务问题
理解AT模式基本原理
1.微服务保护
保证服务运行的健壮性,避免级联失败导致的雪崩问题,就属于微服务保护。这章我们就一起来学习一下微服务保护的常见方案以及对应的技术。