一、2PC:
通过2PC,但需要丧失CAP的A特性,如果部分服务不可用,则无法实现整个事务提交
二、Paxos或Zookeeper:
(一)、Paxos:偏向C,弱化A;但也要求至少N+1结点同时操作,在可用性(性能和吞吐量)方面也打了不少折扣。主要应用于同时两个人要改一件事情,到底以谁的为准。Paxos的游戏场景:
甲乙两个客户端分别提交100、200两个事务,其中100需要把数据库比如学生姓名改为张三,200事务改成李四,后台有三个数据库服务器A、B、C。时间顺序为:
1、100咨询张三A、B、C是否可以预提交,A、B口头答应,C没有答复;甲客户端收到100的返回值,超过半数,因此100事务让A、B去提交(拿合同去签订)
2、C恢复,200咨询B、C事务否可以提交,由于200>100,因此B、C口头同意200;乙客户端收到B、C口头允诺后,也去签订合同
3、100成功与A签署合同,但B拒绝签署合同。甲知道这个事情后,同意200事务变成李四,继续征求A、B、C意见
4、200成功与A、B、C签署合同
5、最终同意姓名改为李四
(二)、Zookeeper:
ZAB协议为Paxos变种,主要应用场景为数据主备,一般由主提供服务,主挂了,再有小弟顶上
ZK核心就是一个提供目录服务的、不存在单点故障的数据库。最初理解Zookeeper时似乎很容易通过数据库或者其他共享文件方式实现,但是它的优势优势或者场景在于不存在单点故障,保证多个子节点宕机依然可以提供服务,从而可以帮助其他Master节点避免单点故障。
1、首先对比普通目录服务,如果共享文件服务器挂掉怎么办?
2、再说数据库,一般数据库集群两种模式,一种是同步复制,需要所有节点完全一致才能完成事务提交,但这样不满足A;或者主从异步复制,但如果此时某个节点故障,则不满足C。
当然上述场景主要是针对互联网中大数据并发下才会存在的情况,普通企业级应用通过单机数据库即可实现,或者利用Oracle等商业成熟软件具有的成熟模型;
但是毕竟开源单机数据库性能不足,而Oracle在数据量特别大的情况下成本高且同开源数据库一样,有数据量瓶颈。
三、最终一致性:
(一)、BASE理论,设置中间状态,当被调用服务恢复执行后,调用服务继续往后走,达到最终一致
相关推荐
为了解决这个问题,新型的分布式数据库如NewSQL尝试融合了传统关系型数据库的强事务一致性和NoSQL数据库的高性能、水平扩展性。 论文中提到的Raft算法是一种现代的共识算法,它与Paxos算法在原理上相似,但Raft以其...
根据提供的文件内容,以下是关于“GoldenDB分布式事务全局一致性”的详细知识点: 分布式事务全局一致性的概念:分布式事务指的是在分布式系统中,跨越多个节点或服务的事务处理。全局一致性是指这些分布式事务能够...
在探讨分布式系统事务一致性解决方案时,我们首先需要理解分布式系统的核心挑战之一就是如何在保证数据一致性的同时,还要维持系统的可用性和分区容错性。根据CAP定律,一个分布式系统不可能同时满足这三个特性。在...
除此以外还介绍了一些分布式事务相关的技术,如幂等性、全局一致性ID、分布式对象等。... 6-1 分布式事务介绍 6-2 spring分布式事务实现_使用JTA 6-3 spring分布式事务实现_不使用JTA 6-4 实例1-DB-DB 6-5 实例1-DB-...
在本方案中,我们将利用RabbitMQ的延迟队列特性来实现在订单和库存系统中的分布式事务最终一致性。 RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)的消息中间件,它提供了一种可靠的消息传递机制,使得...
Java分布式事务是大型分布式系统中不可或缺的一个重要组成部分,它确保在多个网络节点间的数据操作能够保持一致性和完整性。在分布式环境中,由于多个服务之间可能存在数据交互,因此需要一种机制来处理跨服务的数据...
在这种情况下,若需要同时更新订单状态和库存数量,就必须确保这两个操作要么全部成功,要么全部失败,这就需要用到分布式事务来保障数据的一致性和完整性。 #### 二、分布式事务产生的背景 ##### 1. 数据库分库...
【分布式事务最终一致性常用方案】 在当今的信息化时代,无论是企业级应用还是互联网应用,保持数据的最终一致性已经成为系统设计的重要挑战。随着分布式系统的广泛采用,数据一致性问题变得更为复杂,因为没有一种...
- **TCC模式**:TCC模式(Try-Confirm-Cancel)是一种通过预检查(Try)、确认(Confirm)和取消(Cancel)三个阶段来保证分布式事务一致性的方法。 - **Saga模式**:Saga模式是一种长活事务模式,通过一系列本地...
Seata-AT确保分布式事务一致性 Seata-AT是Seata的事务模式之一,旨在确保分布式事务的一致性。 Seata-AT通过代理数据源应用、解析SQL语义、提取表元数据、生成前镜像、执行业务SQL、保存后镜像、生成行锁、注册分支...
分布式事务和一致性算法是分布式系统设计中的核心问题,尤其在当今高度依赖分布式计算和存储的场景中。分布式事务与一致性算法Paxos、Raft和ZAB是解决分布式系统中数据一致性的代表性算法,它们能够确保在网络分区、...
在设计分布式事务时,我们需要关注系统的高可用性、数据的最终一致性、服务的独立演化和部署能力,以及对异构数据存储的支持。同时,低侵入性和对同步/异步流程的支持也是重要的考虑因素。在实际应用中,架构师需要...
分布式事务的主要目标是保证在不同节点上的数据一致性,即使在节点间的通信出现问题或节点故障的情况下。传统的两阶段提交(2PC)协议虽然可以确保强一致性,但其性能低下,容易因节点故障导致阻塞,影响系统可用性...
本文来自于csdn,本文主要从分布式的原因,事务特性,和解决方案中深入理解了分布式事务,希望对您的学习有所帮助。...本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 2.1、数据库分库分表
面向内存数据网格(In-Memory Data Grid, IMDG)的分布式事务保障机制的研究就是为了在分布式环境下,解决数据操作的一致性和可靠性问题。 从给定的文件内容可以了解到,文章主要讨论了在IMDG环境下如何实现一个...
典型的表示层 - 业务逻辑层 - 数据访问层,三层架构中各层所容纳的实例个数由单数向复数转变,进而带来了分布式系统事务一致性问题。 分布式事务技术发展简史: 1. Early Beginnings:事务概念的提出可以追溯到20...