1.什么是事务

在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序

事务是恢复和并发控制的基本单位。

事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性

  • 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
  • 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
  • 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
  • 持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

2.什么分布式事务

顾名思义是在分布式系统中实现的事务,事务的资源管理器,事务管理器,资源协调器可能不在同一个服务器上,分布于各个服务器,一个大的操作由很多小的操作组成,例如,购物由扣减库存,支付金币,增加积分三个操作组成,分布式事务要保证这三个要么都成功,要么都失败。

3.分布式事务的类型

  • 强一致性:是指在事务没有完成前,所有其他的访问事务中的资源都处于阻塞状态,一直到事务完成后。后续的操作只会读取带更新后的资源
  • 弱一致性:在两个操作进行时,一个操作要读取另一个操作的资源,可能会读取到更新前的资源也可能读取到更新后的资源。
  • 最终一致性:在这种情况下,事务不会进入阻塞状态,在另一个请求读取这种事务的时候,只会读取到更新后的资源,因为这种会执行预执行,一旦出错,会进行逆操作回到执行前的状态,但最终一定是一致的。

4.BASE 理论

BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

  • 基本可用(Basically Available): 基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。
  • 软状态(Soft State): 软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。MySQL Replication 的异步复制也是一种体现。
  • 最终一致性(Eventual Consistency): 最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

5.BASE和ACID

ACID 理论是传统数据库常用的设计理念,追求强一致性模型。BASE 理论支持的是大型分布式系统,通过牺牲强一致性获得高可用性。BASE 理论在很大程度上,解决了事务型系统在性能、容错、可用性等方面痛点。BASE 理论在 NoSQL 中应用广泛,是 NoSQL 系统设计的事实上的理论支撑。
对于任何集群而言,不可预知的故障的最终后果,都是系统过载。如何设计过载保护,实现系统在过载时的基本可用,是开发和运营互联网后台的分布式系统的重中之重。

分布式事务的BASE理论相关推荐

  1. 分布式事务之BASE理论

    分布式事务之BASE理论 1. 什么是BASE理论? 2. Basically Available(基本可用) 3. Soft state(软状态) 4. Eventually consistent( ...

  2. 分布式事务概念、理论、及(2PC、3PC)

    一. 简介 1. 什么是本地事务? 基于关系型数据库的事务,叫做本地事务,也叫做数据库事务. 本地事务通常是应用和数据库在一个服务器上,利用数据库本身的事务特性,从而实现本地事务. 数据库事务的特性: ...

  3. cap理论具体含义_分布式事务的CAP理论

    相关历史文章(阅读本文之前,您可能需要先看下之前的系列 ) 分布式事务「2020年」必学,升职加薪你准备好了吗? 事务的基本概念 事务的四大特性ACID 分布式事务产生的场景 前言 通过前面的学习,我 ...

  4. 10分钟了解分布式CAP、BASE理论

    CAP理论 2000年7月,Eric Brewer教授提出CAP猜想:2年后,Seth Gilbert和Nancy Lynch从理论上证明了CAP:之后,CAP理论正式成为分布式计算领域的公认定理.C ...

  5. 分布式事务解决方案(总览)

    关注私信,赠送 分布式事务学习视频资料!!! 总览 本系列针对分布式事务提出三种解决方案:可靠消息最终一致性.最大努力通知.TCC. 每种方案分为上下两篇,上篇为原理概述,下篇为具体实现. 本篇是对本 ...

  6. 分布式事务Seata

    02.引入分布式事务-本地事务与分布式事务 1)本地事务 本地事务,也就是传统的单机事务.在传统数据库事务中,必须要满足四个原则: 目前常用的Spring的声明式事务,@Transtional 2)分 ...

  7. 分布式事务详解、理论分析、及强一致性(2PC、3PC)剖析

    一. 简介 1. 什么是本地事务? 基于关系型数据库的事务,叫做本地事务,也叫做数据库事务. 本地事务通常是应用和数据库在一个服务器上,利用数据库本身的事务特性,从而实现本地事务. 数据库事务的特性: ...

  8. 分布式事务篇——第一章:分布式事务前言

    做开发的同学,在一般的互联网公司会很少接触到分布式,甚至本地事务都不一定经常用,全是靠DB来做支持,或者通过Mybatis,一旦接触到分布式,就一定离不开核心点--分布式事务,本章就来唠唠看大厂这些分 ...

  9. 基于可靠消息方案的分布式事务:Lottor介绍

    前言:笔者最近实现了基于可靠消息方案的分布式事务:Lottor.本文将会介绍Lottor的概况,在后续系列文章介绍具体的实现,欢迎关注. 分布式事务 分布式事务是指事务的参与者.支持事务的服务器.资源 ...

最新文章

  1. Spring事务传播
  2. Codeforces 1344 题解
  3. 魏桥集团创始人张士平去世,他是如何成为山东首富的?
  4. Spring Cloud Zuul网关(快速搭建)
  5. 跟着翁凯老师学Cday1#学习记录#
  6. 以云服务器产品为例,深度分析比对华为云、阿里云、腾讯云
  7. JAVA WEB 复习资料
  8. 指针的指针(简单易懂)
  9. 使用java.lang.String报错之Expected 0 arguments but found 1
  10. 大侠周鸿祎——腾讯,你丫动手吧!
  11. 《Blockchained On-Device Federated Learning》精读
  12. 不要看《深入浅出MFC》!
  13. 仿百度外卖、美团外卖、淘点点等左右联动ListView菜单展示
  14. 写博客的时间被看小说、刷微信的时候,要想想
  15. Android系统的应用开发与运行环境构建
  16. 再严重的 Log4j2 漏洞也伤害不了 Java
  17. matlab读写xlsx文件和txt文件
  18. 通过 GCC 学习 OpenMP 框架
  19. l4re Getting started
  20. 201671010426 孙锦喆 实验三作业互评与改进报告

热门文章

  1. 软考网络工程师备考详细介绍
  2. 利用python进行数据分析数据集_《利用Python进行数据分析》终章·数据分析案例·学习笔记(二)...
  3. Linux多定时器实现之三——Windows和Linux通用版
  4. MySQL如果不存在一个表则创建
  5. Nexus arm Linux,[原创] Nexus 6p 刷入Kali Linux NetHunter 2019.3方法
  6. 运行错误:view size is not compatible with input tensor‘s size and stride (at least
  7. 软考高级,考网规还是考项管?
  8. 光场相机重聚焦原理介绍及代码解析
  9. 4 支付宝手机网站支付demo讲解
  10. Linux——赋予普通用户root的权限