本文主要是介绍分布式事务处理理论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对于集中式事务处理系统或者本地事务处理系统,我们通常应用ACID模型来保证数据的严格一致性。但是随着分布式系统的出现,分布式事务的处理问题也显现出来了。很显然,我们用ACID模型处理分布式事务是不能胜任的,很可能会导致分布式系统的可用性和严格一致性之间出现冲突。这两者对消费者来说是缺一不可的,那么如何保证分布式的事务呢?
CAP理论:
CAP原理,即布鲁尔定理,它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Consistency) (所有节点在同一时间具有相同的数据)
可用性(Availability) (保证每个请求不管成功或者失败都有响应)
分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)
CAP原理的核心理论是:
一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,因此,根据CAP原理,将NOSQL数据库分成了满足CA原则,满足CP原则和满足AP原则三大类,这三大原则各自的优缺点如下:
1、CA -单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大
2、CP -满足一致性,分区容错性的系统,通常性能不是特别高
3、AP -满足可用性,分区容错性的系统,通常可能对一致性要求低一点
针对当前网络硬件实际情况,肯定会出现延迟丢包等网络问题,所以分区容错性是我们必须要实现的,所以我们在搭建分布式系统的时候,只要在一致性和可用性之间考虑选择。针对当前各大运营商的使用情况来看,是允许有少量的延迟的,所以我们可以降低一点对一致性的要求,所以常用的还是AP原则。
BASE原则:
由上面的讲解可以知道,分区容错是分布式系统的一个基本要求,那么我们怎么在一致性和可用性之间根据业务寻求一种平衡呢?---于是BASE出现了
BASE是对CAP中一致性和可用性权衡的结果,其来源对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的,其核心思想就是如下: BASE是NoSQL数据库通常对可用性及一致性的弱要求原则。
BASE就是三个术语的缩写:
1、基本可用:分布式系统在出现不可预知故障的时候,允许损失部分可用性;典型就是:响应时间上的损失;功能上的损失
2、软状态:允许系统中的数据出现中间状态,并认为该中间状态的存在不会影响系统的整体可用性。通俗理解:允许系统在不同节点的数据副本之间的数据同步存在延时
3、最终一致:保证数据最终能够达到一致,不需要实时保证系统数据的强一致性。
存在5种变种:因果一致性、读己之所写、会话一致性、单调读一致性、单调写一致性
它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能改观。
在实际应用中,我们会根据业务对数据一致性的不同要求,结合ACDI和BASE使用。
这篇关于分布式事务处理理论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!