欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

分布式事务一致性与数据一致性的理解

时间:2023-07-14

关于各种一致性的理解:
1、数据一致性,往往指的是缓存和数据库的一致性。

2、事务的一致性,和原子性类似,都是从一个状态变到另一个状态,但不同的是,原子性追求这个过程不能出错,不论结果对不对,不能出错。但一致性更追求结果一致,比如A减少100,B增加100,这是一致的。当A减少100,B增加60,这是原子的,但不是一致的。

3、分布式事务的一致性:本质上来说,分布式事务就是为了保证在分布式场景下,数据操作的正确执行。但分布式事务不像本地事务,可以做到ACID,分布式事务做不到。比如分布式存储场景下,一个存储节点通过本地事务减少100,不能同时保证另一个存储节点事务增加100,这实际上就是数据不一致。而在本地事务中,是可以做到的,本地事务把减100和加100当作一个原子操作来执行。
但是分布式事务也是可以解决这一类问题的,但从而带来了很高的代价,也就是我们说的CAP理论,P分区容错是一定的。那么当C很强时,也就是强一致性的时候,也就是说用户访问任何一台数据库服务器,必须都是要数据一致的,第一个存储节点减少100,另一个存储节点必须增加100,这就是强一致性,但是问题是有网络延迟,第一个节点减少了100,第二个还没来得及加100,此时用户要访问第二台数据库服务器,怎么办? 那就不让他访问,也就是吸收Availability可用性。那如果要保证可用性怎么办?那就牺牲一致性,数据不一致没关系,最终一致就可以了。

那解决这样的问题的框架有哪些?比如seata的AT,TCC等,就是实现全局事务的统一提交,要么就不提交,那这样就能保证所有数据的一致了。但当全局事务没有统一提交的时候,可能用户的请求查数据库,可能查到的还是旧数据。

4、分布式事务的原子性:单个分枝事务成功,但其他事务可能失败,需要全局回滚。

5、注意:CAP理论强调的是说在分布式存储系统中的。

以上纯属个人理解,有问题请指出探讨。

参考:https://blog.csdn.net/yeyazhishang/article/details/80758354
参考:https://segmentfault.com/a/1190000040321750
参考:http://www.dockone.io/article/9804

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。