「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」
分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点上。
例如在分布式系统下的下单操作中,一个订单的完成可能需要经过扣除库存、减去优惠、创建订单等系列操作,但是这些操作可能分别位于不同的服务中,这个时候,下单的成功与否,不仅取决与本地的db操作,而且依赖第三方系统的结果,这个时候就需要分布式事务来保证这些操作要么全部成功,要么全部失败。
本质上来说,分布式事务是为了保证不同数据库的数据一致性
强一致性、弱一致性、最终一致性
强一致性
在任意时刻,所有节点中的数据都是一样的
弱一致性
数据更新后,如果能容忍后续的访问只能访问到部分或者全部访问不到,则是弱一致性
最终一致性
不保证在任意时刻任意节点上的同一份数据都是相同的,但是随着时间的迁移,不同节点上的同一份数据总是在往趋同的方向发展,就是在一段时间后,节点间的数据会达到最终一致状态
CAP原则
指的是在一个分布式系统中: Consistency (一致性)、 Availability (可用性)、 Partition tolerance (分区容错性),三者不可兼得。
一致性 C
在分布式系统中的所有数据备份,在同一时刻是否相同的值。(等同于所有节点访问同一份最新的数据副本)
可用性 A
在集群中的一部分节点故障后,集群整体是否还能响应客户端的读写请求(对数据更新具备高可用性)
分区容错性 P
分区相当于对通信的时限要求,系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在 C 和 A 之间做出选择
CAP原则下,要么AP,要么CP,要么AC,但是不存在CAP。
BASE理论
BASE理论指的是基本可用、软状态、最终一致性。核心思想是即便无法做到强一致性,但应该采用适合的方式保证最终一致性
BA(基本可用):分布式系统在故障的时候,允许损失部分可用性,即保证核心可用
S(软状态):允许系统存在中间状态,该中间状态不会影响系统整体可用性
E(最终一致性):系统中所有数据副本在经过一定时间后,最终能够达到一致的状态