后端开发未读
分布式事务:Seata微服务下的事务场景在以下场景中,用户支付成功后,订单服务创建业务,同时使用 restTemplate 或者 feign 对其他服务发起远程调用,完成整个业务流程。
照理来说所有业务要么都成功,要么都失败,在没有加上事务管理时,是否能保证事务一致性?
实际上不会。假设在第三个库存服务中,商品库存不够了,那么后端确实会给前端报错信息(报状态码),但是在前面两个服务不会同时失败。也就是说,订单确实创建了,钱也确实少了,但是给不了货儿,明白了吧?此时事务就不是一致的。
在分布式系统中,一个业务跨越了多个服务或数据源,每个事务都是一个分支事务,而整个事务称为全局事务。保证所有分支事务的最终一致性,这样的事务就是分布式事务。
那么,如何保证分布式事务?先从基本的理论开始~
理论基础CAP定理四张图介绍CAP定理。
Base理论在CAP中,P是一定会发生的。想想看,网络故障,或者仅仅是普通的网络波动等其他原因,都有可能会导致集群中的节点不可用。因此满足P的前提下,能产生的模式也就只有两个了,那就是CP模式和AP模式。
无论是AP模式还是CP模式,他俩都在一开始我们提出分布式事务中遇 ...