分布式事务解决方案
简单阐述一下自己对分布式事物的理解,如有错误欢迎指正: 刚性事物:即ACID这里不做过多解释,有不明白的同学建议快速掌握。 柔性事物:简单来说为运行过程不一致但最终保持一致。 一、产生原因: 分布式(微服务)系统中之间的跨库访问(例:商城项目中的会员数据库,订单数据库,支付数据库等、、、)与同一项目多数据源不同,使用于分布式系统后类似SOA接口之间调用时产生。 二、解决原理: 1)、CAP原理(即:一致性,可用性,分区容错性) 一致性:当系统对一个数据进行写操作时成功后,在查询则必须是改动后的值,当写操作失败也就必须查不多新值,在单机项目中又叫原子性。 可用性:服务可用性,就是说所有的读写请求在一定时间内要得到响应,不能一直等待下去。 分区容错性:指在分布式、微服务系统中,当 部分服务宕机后,其他核心服务能够不受影响能够继续提供服务。 2)、BAS理论: 采用CAP演化而来,是对CAP中一致性和可用性权衡的结果,核心思想是:即使无法做到强一致性,但每个业务根据自身的特点,采用适当的方式来使系统达到最终一 致 性。主要有以下状态: 基本可用:在分布式系统出现故障时,允许损失部分可用性,保证核心可用,例如:一个服务正常响应时间为:2秒之内,在访问量大时可采用可对部分用户进行降级处理 软状态:允许系统存在中间状态,并且该状态不会允许系统整体可用性