分布式事务的理论知识(5)

从某种程度上讲,同一业务中通过不同的会话操作数据库,就有可能出现分布式事务问题。解决分布式事务问题需要一定的理论支撑。

CAP理论

CAP是一致性(Consistency)、可用性(Availability)和分区容忍性(PartitionTolerance)
在分布式系统中,不会同时具备CAP三个特性,只能同时具备其中的两个。

一致性

一致性是指用户对数据的更新操作(包括新增、修改和删除),要么在所有的数据副本都执行成功,要么在所有的数据副本都执行失败.

一致性存在如下特点:
1)存在数据同步的过程,应用程序的写操作存在一定的延迟
2)为了保证各节点数据的一致性,需要对相应的资源进行锁定,待数据同步完成后再释放锁定的资源。
3)如果数据写入并同步成功,所有节点都会返回最新的数据。相反地,如果数据写入或者同步失败,所有节点都不会存在最新写入的数据,原子特性

可用性

可用性指的是客户端访问数据的时候,能够快速得到响应.系统处于可用性状态时,每个存储节点的数据可能会不一致,并不要求应用程序向数据库写入数据时能够立刻读取到最新的数据。

可用性存在如下特点:
1)所有的请求都会被响应。
2)不会存在响应超时或者响应错误的情况。
3)如果对不同的应用程序设定了超时响应时间,一旦超过这个时间,系统将不可用。

分区容错性

如果将存储系统部署并运行在多个不同的节点上,并且这些节点处于不同的网络中,这就形成了网络分区。此时,不可避免地会出现网络问题,导致节点之间的通信出现失败的情况,但是,此时的系统仍能对外提供服务

分区容忍性存在如下特点:
1)一个节点挂掉,不影响其他节点对外提供服务。
2)分区容忍性是分布式系统必须具备的基础能力。

CAP的组合

A P:即放弃一致性, 但架构设计方案采用了最终一致性,允许多个节点的数据在一定的时间内存在差异,一段时间后达到数据一致的状态

C P:放弃可用性,追求系统的一致性和分区容忍性。这种组合方式对于数据的一致性要求比较高,追求的是强一致性。(银行转账系统)

C A:放弃分区容忍性,追求系统的一致性和可用性。此时系统不会进行分区,也不会考虑网络不通和节点挂掉的问题。主数据库和从数据库不再进行数据同步,此时系统也不再是一个标准的分布式系统

Base理论

Base理论是对CAP理论中AP的一个扩展,它通过牺牲强一致性来获得可用性。Base理论中的Base是基本可用(Basically Available)、软状态(Soft State)和最终一致性(Eventually Consistent)的缩写

基本可用

基本可用是指分布式系统出现故障时,允许其损失系统的部分可用性,比如响应时间或者功能上的损失,但是要保证系统基本可用

  • 例如在电商业务场景中,添加购物车和下单功能出现故障时,商品浏览功能仍然可用。

软状态

软状态是指允许系统中存在中间状态,这些中间状态不会影响系统的整体可用性,只是允许系统各个节点之间的数据同步存在延迟

  • 例如在电商业务场景中,订单中的“支付中”“退款中”等状态就是中间状态,当达到一段时间后,就会变成“支付成功”或者“退款成功”的状态。

最终一致性

最终一致性是指系统中各个节点的数据副本经过一段时间的同步,最终能够达到一致的状态。

  • 例如在电商业务场景中,订单中的“支付中”“退款中”等状态,最终会变成“支付成功”“退款成功”的状态,经过一段时间的延迟,能够使得订单中的状态与最终的交易结果一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值