最全的分布式事务详情,它来啰~

我们首先得理解什么是分布式事务呢?分布式事务是指在分布式系统中,涉及多个计算机或服务器的操作序列,这些操作需要满足一致性和可靠性的要求。每个操作要么全部成功执行,要么全部回滚,以保持数据的一致性和完整性。

OK,概念讲完,我们知道一个东西的出现一定是为了解决一些问题的,那么分布式事务解决了我们什么样的难题呢,而它又是如何解决的呢?

  1. 数据一致性问题:当数据分布在不同的节点上,多个并发操作可能会导致数据不一致。分布式事务通过提供原子性和一致性,确保在分布式系统中进行的操作保持数据一致性,避免数据错误和不一致。
  2. 并发冲突问题:在分布式环境中,多个并发操作可能会相互干扰,导致数据竞争和冲突。分布式事务的隔离性能力确保并发操作之间相互隔离,防止数据冲突,确保操作的正确执行。
  3. 故障容忍和持久性问题:分布式系统中的节点可能面临故障或断电等问题。分布式事务通过持久性的特性,确保一旦事务成功提交,其结果将被永久保存,即使在系统故障或网络中断的情况下也不会丢失。

所以说,事务通过原子性、一致性、隔离性、持久性这几大特点,保障数据一致性和完整。性防止并发操作导致的数据竞争和冲突 提供故障容忍和持久性,确保操作的安全性和可靠性

如果你还对这些东西感到晕头转向,那么让我给你一个简单的场景吧,让你对它有更加深刻的理解

当你在网上购物时,使用信用卡进行支付涉及多个步骤和参与者,包括你、商家、支付网关和银行系统。在这个过程中,分布式事务的功能起到以下作用:

  1. 原子性:如果交易成功,整个支付过程要么全部成功执行,要么全部回滚。例如,如果商家没有库存或者支付网关出现问题,整个支付过程将被取消,避免了部分支付导致的数据不一致性。
  2. 一致性:分布式事务确保支付过程中的各个环节符合预定义的一致性规则。例如,商家应该从库存中减少商品数量,支付网关应该扣除相应的金额,并向银行发起付款请求。这种一致性保证了交易的正确执行,并避免了数据错误或矛盾的发生。
  3. 隔离性:分布式事务确保你的支付操作与其他用户的支付操作相互隔离,不会相互干扰。这意味着你的支付过程不会与其他用户的支付过程产生冲突,每个支付操作都独立执行,保证了数据的正确性和独立性。
  4. 持久性:一旦支付成功提交,分布式事务确保支付结果被永久保存。无论在支付过程中发生了什么,一旦支付成功,金额将从你的账户扣除并转入商家的账户。这种持久性保证了支付数据的安全存储,即使在网络故障或系统崩溃的情况下也能够恢复数据并保持一致性。

你看!一个我们日常中最常见的购物操作,都会涉及到事务的处理,所以话不多说,赶紧来了解一下事务到底是什么吧!!

事务的隔离级别

隔离级别是指在并发环境下,数据库系统为了处理事务之间可能发生的相互干扰问题而采取的一种机制。

如果想了解事务的隔离级别这个概念,让我们先来问几个问题,这些问题可能你们在生产中也会遇到

1、你是否遇到过在一个事务中读取到了另一个事务尚未提交的数据?比如发送一个消息,后端需要先更新消息明细列表数据,并且在统计表中对用户未读数的统计+1,但查询时,发现明细列表有数据了,但未读数怎么没+1呢

2、你是否曾经在同一个事务中多次读取同一数据时得到了不一致的结果?

3、你是否遇到过在同一个事务中执行了一次范围查询,然后再次执行相同查询时结果却不一样?

上面这几个问题就代表着我们可能遇到;脏读、不可重复读、幻读

那么什么又是脏读、不可重复读、幻读呢?

  • 脏读(Dirty Read):某
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值