首页 > 其他分享 >分布式事务

分布式事务

时间:2023-05-02 16:56:09浏览次数:46  
标签:事务 最终 可用性 BASE 分布式系统 一致性 数据 分布式

分布式理论

CAP理论

在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance),这三个要素最多只能同时实现两点,不可能三者兼顾。由于P(分区容错)是必选项,所以只能在AP或者CP中选择。

  • 一致性(Consistency):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本) ;

  • 可用性(Availability):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性); 

  • 分区容错性(Partition tolerance):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择;

BASE理论

BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)的缩写。在分布式系统中,CAP理论是指导思维,而BASE理论是CAP理论中AP的延伸,是对 CAP 中的一致性和可用性进行一个权衡的结果,核心思想是:即使无法做到强一致性,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

  • 基本可用(Basically Available):指分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用。

  • 柔性状态(Soft state):指允许系统存在中间状态,并认为该中间状态不会影响系统整体可用性。比如,允许不同节点间副本同步的延时就是柔性状态的体现。

  • 最终一致性(Eventually consistent):指系统中的所有副本经过一定时间后,最终能够达到一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。

事务的一致性

  • 强一致性:系统中的某个数据被成功更新后,后续的访问都能看到更新后的值;

  • 弱一致性:系统中的某个数据被更新后,后续的访问可能得到更新后的值,也可能是更改前的值;

  • 最终一致性:系统中的某个数据被更新,经过一段时间后,最终所有的访问都是更新的值;

事务按照属性分类

事务可以按照对数据的一致性要求进行分类:

刚性事务

分布式理论的CP ,强一致性,遵循ACID,对数据要求强一致性

柔性事务

分布式理论的AP+BASE ,最终一致性,遵循BASE,允许一定时间内不同节点的数据不一致,但要求最终一致;

标签:事务,最终,可用性,BASE,分布式系统,一致性,数据,分布式
From: https://www.cnblogs.com/hx-web/p/17366651.html

相关文章

  • 终于有人把openGauss3.0.0分布式原理讲透了,openGauss X ShardingSphere分布式原理和部
    本文为原理精讲,部署文章链接如下https://blog.51cto.com/u_13808894/6236819一、opengauss的背景和行业现状2022年,七大openGauss商业版发布,是基于openGauss3.0推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1作者认为之所以海量数据库Vastbase目前无法被同......
  • 为什么要使用分布式锁(通过redis实现)
    如果需要使用到缓存机制,那就存在着这三个问题:*1、缓存穿透问题:(全部访问redis中不存在的信息),解决方式:在redis中将数据库中没有的数据暂时赋值为null*2、缓存雪崩问题:(redis中的key在同一时间大幅度的过期),解决方式:在redis中存入数据的时候,传入一个随机值作为存活时间*3、缓存击......
  • mysql 事务的隔离级别、MVCC
    《凤凰架构》一书中对事务的隔离级别以及事务的定义很清晰https://www.cnblogs.com/suBlog/p/16592859.html总结写锁:排他锁,其他事务不能写入数据,也不能施加读锁(可读,但是不可加读锁)读锁:共享锁,多个事务可以同时施加读锁,但是其他事务不能写入数据范围锁:不能修改范围内已有的数据......
  • Spring事务
    事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作,同成功同失败案例:银行账户转账1.在业务层接口上添加Spring事务管理2.设置事务管理器3.开启注解式事务驱动事务角色事务管理员:发起事务方,在Spring中通常指代业务......
  • 分布式任务调度
     1、什么是任务调度? 我们可以先思考一下下面业务场景的解决方案:某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。某银行系统需要在信用卡到期还款日的前三天进行短信提醒。某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。12306会根......
  • Django框架——Q查询进阶、ORM查询优化、事务操作、字段类型、字段参数、Ajax、Conten
    Q查询进阶fromdjango.db.modelsimportQq_obj=Q()#1.产生q对象q_obj.connector='or'#默认多个条件的连接是and可以修改为orq_obj.children.append(('pk',1))#2.添加查询条件q_obj.children.append(('price__gt',2000))#支持添加多个res=models.Book.o......
  • 事务失效
    spring用代理对象去调用方法才会生效,在一个方法中去调用b其实是this去调用,所以不会生效 可以注入自己的service,用cglib代理的对象调用的b方法,可以让事务生效然后spring三级缓存会帮我们过滤循环依赖的问题         1.如果用了private就不会生效事务......
  • openGauss分布式安装_搭建_快速部署openGauss3.0.0分布式(openGauss课程)
    一、opengauss的背景和行业现状2022年,七大openGauss商业版发布,是基于openGauss3.0推出商业发行版目前海量数据库Vastbase表现最佳,一直是TOP1作者认为之所以海量数据库Vastbase目前无法被同行超越,和各家研发实力和技术背景有关 众所周知,opengauss起源于postgre......
  • 二、分布式基础概念--谷粒商城
    1.微服务服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTPAPI。这些服务围绕业务能力来构建,并通过完全自动化部署机制来独立部署。这些服务使用不同的编程语言书写,以及不同数据存储技术,并保持最低限度的集中......
  • SequoiaDB分布式数据库2023.4月刊
    本月看点速览赋能产业升级,荣获新睿之星聚焦金融,进一步探索非结构化数据价值释放再获肯定,入选2023年中国最佳信创厂商入围名单青杉计划2023已开启,一起攀登更高的“杉” 赋能产业升级,荣获新睿之星4月18日,2023年第九届广州国际投资年会在广州白云国际会议中心成功举办。会中......