事务提供一种机制将一个活动涉及的全部操做归入到一个不可分割的执行单元,组成事务的全部操做只有在全部操做均能正常执行的状况下方能提交,只要其中任一操做执行失败,都将致使整个事务的回滚。简单地说,事务提供一种“要么什么都不作,要么作全套(All or Nothing)”机制。html
分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不一样的分布式系统的不一样节点之上。简单的说,就是一次大的操做由不一样的小操做组成,这些小的操做分布在不一样的服务器上,且属于不一样的应用,分布式事务须要保证这些小操做要么所有成功,要么所有失败。服务器
银行转帐、车站售票、网上购物。架构
一、强一致性分布式
这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来每每对系统的性能影响大。性能
二、弱一致性网站
这种一致性级别约束了系统在写入成功后,不承诺当即能够读到写入的值,也不久承诺多久以后数据可以达到一致,但会尽量地保证到某个时间级别(好比秒级别)后,数据可以达到一致状态。搜索引擎
三、最终一致性spa
最终一致性是弱一致性的一个特例,系统会保证在必定时间内,可以达到一个数据一致的状态。这里之因此将最终一致性单独提出来,是由于它是弱一致性中很是推崇的一种一致性模型,也是业界在大型分布式系统的数据一致性上比较推崇的模型。架构设计
BASE理论是实现分布式事务最终一致性的有效解决方案。设计
BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结, 是基于CAP定理逐步演化而来的。BASE理论的核心思想是:即便没法作到强一致性,但每一个应用均可以根据自身业务特色,采用适当的方式来使系统达到最终一致性。
一、基本可用
基本可用是指分布式系统在出现不可预知故障的时候,容许损失部分可用性----注意,这毫不等价于系统不可用。好比:
(1)响应时间上的损失。正常状况下,一个在线搜索引擎须要在0.5秒以内返回给用户相应的查询结果,但因为出现故障,查询结果的响应时间增长了1~2秒。
(2)系统功能上的损失:正常状况下,在一个电子商务网站上进行购物的时候,消费者几乎可以顺利完成每一笔订单,可是在一些节日大促购物高峰的时候,因为消费者的购物行为激增,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级页面。
二、软状态
软状态指容许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的总体可用性,即容许系统在不一样节点的数据副本之间进行数据同步的过程存在延时。
三、最终一致性
最终一致性强调的是全部的数据副本,在通过一段时间的同步以后,最终都可以达到一个一致的状态。所以,最终一致性的本质是须要系统保证最终数据可以达到一致,而不须要实时保证系统数据的强一致性。
总的来讲,BASE理论面向的是大型高可用可扩展的分布式系统,和传统的事物ACID特性是相反的,它彻底不一样于ACID的强一致性模型,而是经过牺牲强一致性来得到可用性,并容许数据在一段时间内是不一致的,但最终达到一致状态。但同时,在实际的分布式场景中,不一样业务单元和组件对数据一致性的要求是不一样的,所以在具体的分布式系统架构设计过程当中,ACID特性和BASE理论每每又会结合在一块儿。