分布式事务(二)

简介: 分布式事务(二)

分布式事务的难点:

事务的原子性:现在事务操作的不是一个数据库,而是多个数据库,现在事务所操作的是跨不同的节点,当多个节点操作失败的时候,多个节点要保证事务操作的原子性。

All OR  Nothing:要么就不做,要做就做全套

事务的一致性:当网络传输发生故障或者节点通信断开,在进行事务操作的时候如何去保障事务的一致性

事务的隔离性:在多个事务并发的情况下,有可能出现部分数据提交,部分数据未提交,如果没有控制就会出现脏数据。“不合理的数据”。

分布式系统的一致性:

CAP理论:C:一致性,A:可用性,P:分区容错。

1、分区容错就是允许网络通信断开,但是节点没挂掉的时候仍是可以访问的。一般在整个分布式系统当中就两种组合。p是不可少的,要么AP,要么PC。

2、因为网络的不可抗因素引发的网络分区的问题,为了解决这个问题必须带有P,一定会有分区容错处理,这也是数据一致性的保障。如果由于网络抖动的原因,没有断开的话,会把这个节点给丢弃掉,因为是从不是主。允许分区的容错:在一个网段/网络当中,有两个节点,他们是连通的,有可能是master-slave的节点。

AP的结构:

在上面节点已经把none的结果改为Ok了,而节点s2的结果还是none的情况。由于网络出现了分区主节点和从节点的网络连通已经断开了,断开之后,这两台就无法通信了。主节点的数据不能同步到从节点上,现在是AP的结构,允许是可用的。这里为了保障分区容错。这时客户端去读取节点S2的数据,这时是AP理论,为了保证可用性,这时读的数据是none。这时就出现了数据的不一致性。保证了AP,导致了数据的不一致性问题。

CP结构(一致性+分区容错):

当客户端连接s2节点上去的时候发现S2和主机通信是断开的,发现系统存在了一个故障。也就是OK不能同步到S2上去。这时如果是CP理论这时就不会读到数据。这时告诉客户端一个error,系统出现问题。为了保证 数据的一致性,所以说这里不会让读,如果让读的话就不会保证数据的一致性,所以拒绝去读,既然拒绝去读了。这时可用性不存在了。

BASE理论

base理论是CAP理论的扩展。

1、基本可用:分布式系统出现故障时,允许损失部分可用性,保证核心的业务可用。这个系统其他的不可用的可以忽略,是可以容忍的。比如在登录的功能相对注册的功能更为核心,注册不了,最多是影响 一部分,但是允许注册但是登录不了系统,导致系统的影响更大。

2、软状态:允许系统存在中间的状态(CAP理论数据不一致的问题)。中间的状态不会影响整体系统整体的可用性。

3、最终一致性:可能由于网络抖动导致一小段时间不一致,系统所有数据的副本经过一定时间后最终能达到一致的状态,比如下完订单以后,不可能马上看到订单的成交,可能中间会有一个状态,但是最终的结果只要下了订单最终都会有一个一致性,如果有成功了就会有订单的信息,如果失败的话就会撤销一系列的操作。

比如这里用到了消息中间件,可能我这里下完订单要减库存。但是不会去直接的去减,而是在队列中发送一个消息,消息中间件让库存的一方接收到消息,然后去消费这个消息,将处理后的结果反馈出来然后去更新库存的状态。这期间可能会有数据不一致的,有可能库存减完了,但是订单还会生成。但是一旦库存出现已更新,这时就可以拿到真证的订单信息了。

相关文章
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
591 213
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
829 61
|
7天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1227 157
|
4天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
236 138
|
6天前
|
存储 安全 固态存储
四款WIN PE工具,都可以实现U盘安装教程
Windows PE是基于NT内核的轻量系统,用于系统安装、分区管理及故障修复。本文推荐多款PE制作工具,支持U盘启动,兼容UEFI/Legacy模式,具备备份还原、驱动识别等功能,操作简便,适合新旧电脑维护使用。
516 109