分布式事务整理

分布式事务最经典的七种解决方案 前言: 随着业务的快速发展、业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向微服务架构。随之而来就必然遇到分布式事务这个难题,这篇文章总结了分布式事务最经典的解决方案,分享给大家。 基础理论 在讲解具体方案之前,我们先了解一下分布式事务所涉及到的基础理论知识。 我们拿转账作为例子,A需要转100元给B,那么需要给A的余额-100元,给B的余额+100元,整个转账要保证,A-100和B+100同时成功,或者同时失败。看看在各种场景下,是如何解决这个问题的。 事务 把多条语句作 阅读详情

cap定理

  • c:数据一致性。所有的节点在同一时间读取到同样的数据。
  • a:数据可用性。无论是成功还是失败,每个请求都会收到一个反馈。
  • p:分区容忍性。系统中有部分的问题或者丢失部分消息,系统能够正常运行。

组合方式

  • ca:放弃分区容忍性,传统单机数据库的选择
  • ap:放弃数据一致性,很多nosql的选择。
  • cp:放弃可用性。可用性比较低,网络问题会让整个系统不可用。

base模型

  • Basically Available:基本可用,允许分区失败。
  • Soft State:软状态,接受一段时间的状态不同步
  • Eventually consistent:最终一致性,保证最终数据状态是一致的。

Quorum

  • 用来权衡分布式系统中数据一致性和可用性
  • N:数据复制节点数量
  • R:成功读操作的最小节点数
  • W:陈功写操作的最小节点数
  • 如果W+R>N,那么是强一致性
  • 如果w+R<=N,那么是能够最终一致性

Vector Clock

  • 对每同一份数据的每一次修改都加上版本号

节点间信息交换方式

  • 通过共享内存共用一份数据
  • 通过消息投递来完成消息的投递

总结

  • 尽量避免引入分布式事务.
  • 应该追求最终一致性而不是强一致性
  • 从实现上说,我们是通过补偿机制不断重试,让之前因为异常没有进行到底的操作继续进行,而不是回滚.
  • 可以用基于Paxos算法的实现
分布式事务解决方案整理 摘要:分布式事务方案分为强一致性和最终一致性两类。强一致性方案包括两阶段提交(2PC)和三阶段提交(3PC),适用于金融等高一致性场景,但性能较差。最终一致性方案包括TCC模式、Saga模式、消息队列+本地消息表、事务消息等,适用于大多数业务场景,具有更好的性能和扩展性。选择方案需考虑业务特性、技术架构和团队能力,建议优先考虑业务规避,从简单方案入手,并建立完善的监控和补偿机制。主流框架包括Seata、ServiceComb Saga等。 阅读详情

相关推荐

PLL锁相环性能上不去?可能是电荷泵的电流失配在捣鬼(附Jae-Shin Lee经典方案解析)

本文深入分析了PLL锁相环性能瓶颈的根源——电荷泵电流失配问题,详细解析了Current Mismatch和Current Deviation的区别及其对系统的影响。重点介绍了Jae-Shin Lee的多级电流镜技术,该方案通过运放构建虚拟短路和四级电流镜结构,显著降低了电流失配,使参考杂散改善15dB以上。文章还提供了从仿真到流片的完整优化流程,帮助工程师系统解决电荷泵性能问题。

weixin_30684743的博客 369

分布式事务原理及解决方案

1 引言 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕单机事务,分布式事务以及分布式事务的处理方式来展开。 2 事务 事务提供一种“要么什么都不做,要么做全套(All or Nothing)”的机制,她有ACID四大特性 原子性(Atomicity):事务作为一个整体被执行,包含在其中...

weixin_34199335的博客 3079

MFC+Modbus-Tcp协议实现温湿度传感器采集

本文简单介绍MFC使用-Tcp通信实现系列MODBUSTCP型温湿度传感器采集数据。

zhigang_zhao的博客 2830

七种常见分布式事务详解(2PC、3PC、TCC、Saga、本地事务表、MQ事务消息、最大努力通知)

在分布式系统中一次操作需要由多个服务协同完成,这种由不同的服务之间通过网络协同完成的事务称为分布式事务。本文详解介绍七种常见分布式事务的原理以及优缺点和适用场景(2PC、3PC、TCC、Saga、本地事务表、MQ事务消息、最大努力通知)

张维鹏的博客 9万+

activemq_CVE-2015-5254_漏洞复现_源码分析

ActiveMQ-CVE-2015-5254

qq_51550750的博客 939

SAP PPDS启发式排产实战:从零配置到自定义规则开发(附ABAP代码示例)

本文详细介绍了SAP PPDS启发式排产的实战应用,从基础配置到自定义规则开发的全流程。通过ABAP代码示例,展示了如何实现多目标优化、实时响应和约束可视化,帮助企业提升订单交付率、减少设备闲置时间。文章还包含开发环境准备、标准模板解析、自定义开发步骤及性能优化技巧,适合制造业数字化转型的实践参考。

seed的博客 183

09分布式事务

1 分布式事务 了解分布式事务之前,应该先了解分布式系统,事务,本地事务等基本概念。 1.1 分布式系统 部署在不同结点上的系统通过网络交互来完成协同工作的系统。 1.2 事务 事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。 原子性:执行单元中的操作要么全...

人生智慧的博客 851

专题一:Labview表格控件 及 应用(三)在表格中插入一行数据

专题一:Labview表格控件 及 应用(三) 在表格中插入一行数据 最近一段时间,做试验台上位机编程,老是用到表格控件,这几天抽时间专门写一个表格控件的专题。有用到的朋友可以参考一下。 今天接着讲一下,表格控件的数据插入,和相关的操作 1.表格控件的数据插入原理: 表格控件是一个 2D 字符串数组。 在表格插入一行,就是在2D数组插入一行。 行、列插入类似** 以下以成绩录入为例说明 2.1 不要表头直接插入 知识点1:创建数组:把数学,语文,英语三个数值,连成一个一位数组(数值型)。 知

Labview十年工控_702老师的博客 1万+

分布式事务解决方案

分布式事务的实现主要有以下 5 种方案: XA 方案 TCC 方案 本地消息表 可靠消息最终一致性方案 最大努力通知方案 两阶段提交方案/XA方案 所谓的 XA 方案,即:两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复 ok,那么就正式提交事务,在各个数据库上执行操作;如果任何其中一个数据库回答不...

湖人•总冠军 1万+

EBS开发_离散工单创建API

--以下代码于20171213在TONY环境中实现 DECLARE     l_iface_rec    wip.wip_job_schedule_interface%ROWTYPE; --工单任务接口表     l_group_id     NUMBER;     l_returnstatus VARCHAR2(40);     l_errormsg     VARCHAR2(2000

蜗牛先生快跑的博客 2596

【DeepSeek实战】1、DeepSeek民用级开发全指南:从0到1掌握AI应用开发与模型蒸馏实战

DeepSeek创新性地打破了传统AI开发的技术壁垒,通过双模型架构(DeepSeek-V3和R1)实现普惠化与专业化并重。其核心优势包括:零代码操作、浏览器直接使用、中文提示词控制及低成本(2元/百万token)。用户通过简单三步(注册-配置-使用)即可快速开启AI之旅,平台提供$50免费额度支持2个月高频使用。 四大核心应用场景: 办公自动化:周报撰写、PPT生成、数据分析一键完成 内容创作:提供爆款标题生成、垂直领域写作模板 学习辅助:支持文档解析、错题讲解、知识图谱构建 生活服务:个性化行程规划

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1735

一图整理完分布式事务

以上就是我个人整理的分布式事务的框架图,需要原图或者xmind都可以私我。

One_hundred_nice的博客 7616

高通开发系列 - Camera之摄像头调试记录

记录一些调试内容

fulinux的博客 1215

分布式事务知识点整理

牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可,考虑到客户体验,这个最终一致的时间窗口,要尽可能的对用户透明,也就是需要保障"用户感知到的一致性"。通常是通过数据的多份异步复制来实现系统的高可用和数据的最终一致性的,"用户感知到的一致性"的时间窗口则取决于数据复制到一致状态的时间。在确认阶段,如果所有的参与者都成功执行了他们的操作并且在尝试阶段中没有失败发生,那么所有的参与者将提交他们的操作,完成事务。每个参与者都会锁定必要的资源,并记录下将要执行的操作。

master-dragon的专栏 916

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

分布式事务【整理、总结】

分布式事务的核心其实是维护分布式数据资源(DB、缓存、MQ等)的一致性。

jyhhhhhhh的专栏 1006

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

分布式事务学习整理

分布式事务相关原理整理

qq_34798605的博客 990

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Seata分布式事务模式详细整理

Seata 文章目录SeataSeata介绍——简单可扩展自治事务框架Seata支持的事务模型:Seata特性支持多个微服务框架高可用高可扩展Seata框架组成模块全局事务定义事务流程模型Seata中的事务模式能力边界条件:限制:Seata各模式详细介绍1. AT模式 —— Seata中的分布式事务最优解特点AT的执行流程第一步 - 执行逻辑第二步AT模式的回滚细节与事务隔离事务隔离问题出现的可能性解决方法AT回滚操作步骤AT模式中的事务隔离级别2. TCC模式传统TCC模式Seata TCC实现原理TCC

weixin_41263382的博客 4882

分布式事务-总结整理

分布式事务 BASE 解释 BASE是对CAP中一致性和可用性权衡结果,核心是无法达到强一致性,能够达到强一致性eventual consistency 实例 大型分布式系统 关系型数据库 主备数据库 同步时存在延迟 同步时出现异常,数据不一致。重试或者人工解决,达到最终一致性 组成 Basically Available基本不可用 响应时间损失 百度0.5变为1.2s...

qq_33814043的博客 250

分布式事务相关整理

有了这张表,就可以启动一个后台任务,扫描这张表中事务的状态,如果一个分布式事务一直(设置一个事务周期阈值)未到状态 3,说明这条事务没有成功执行,可以将事务状态置为 error,通过人工介入进行干预。2)阶段二:提交阶段。若所有的服务的 try 接口在阶段一都返回 yes,则进入提交阶段,协调者调用所有服务的 confirm 接口,各个服务进行事务提交。1)性能差,在准备阶段,要等待所有的参与者返回,才能进入阶段二,在这期间,各个参与者上面的相关资源被排他锁住,影响了各个参与者的本地事务并发度;

Juwenzhe_HEBUT的博客 600

分布式事务(网上资料整理)

参考:拜托,面试请不要再问我TCC分布式事务的实现原理! 参考:文章目录1.什么是分布式事务2.两阶段提交方案/XA方案3.TCC 方案 1.什么是分布式事务 咱们先来看看业务场景,假设你现在有一个电商系统,里面有一个支付订单的场景。 那对一个订单支付之后,我们需要做下面的步骤: 更改订单的状态为“已支付” 扣减商品库存 给会员增加积分 创建销售出库单通知仓库发货 上述这几个步骤,要么一起成...

了凡的博客 368

8种分布式事务实现原理的全面整理

完整整理了8种实现分布式事务的原理,包括2PC、3PC、消息队列、TCC、事务状态表、对账等

每天净瞎搞 2268

关于分布式事务资料的整理

一、 关于分布式事务的文章1. ServiceComb中的数据最终一致性方案    https://blog.youkuaiyun.com/FL63Zv9Zou86950w/article/details/78393439   来自华为微服务引擎技术团队:   开源项目: ServiceComb-Saga 地址:https://github.com/ServiceComb/ServiceComb-Saga 基...

动感超人的专栏 2680

关于分布式事务管理整理归纳

事务:首先事务是什么? 事务就是当我们在发送一个请求的时候,通常会调用很多方法,我们把与这个请求相关的方法全部看成一个整体也就是一个事务,那么我们在执行该请求的时候如果中途出现异常那么我们之前的操作的数据都应该回到我们请求前的状态;这样才不会导致数据出现不一致的情况; 事务就有以下四种特性: 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状

weixin_50021594的博客 291

分布式事务 2PC浅析整理

前言 事务我们都知道,可以看作是操作的集合,这个操作的集合需要满足ACID的特性。 什么是分布式事务? 即事务是在分布式的情况下执行,不是在某个单节点上执行的,例如分布式情况下,库存和订单是多个服务,那么就需要分布式事务来保证事务的ACID特性,例如原子性,不能减了库存,但是订单生成失败了,即没有订单了对吧。 2PC 两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真正执行事务。 准备阶段:协调者寻求所有参与者的

阳光大男孩!!!的博客 834

分布式事务方案整理

分布式系统有一个著名的CAP理论,即一个分布式系统要同时满足一致性(Consistency)、可用性(Availablility)和分区容错(Partition Tolerance)三个特性是一件不可能的事情。 CAP理论告诉架构师不要妄想设计出同时满足三者的系统,应该有所取舍,设计出适合业务的系统 方案一. 2PC(两阶段提交协议) 基于数据库XA协议的方式, java有Automikos框架支持,可以实现事务强一致性, 但性能低下。 毕竟鱼与熊掌不可兼得。尽量避免分布式事务, 尽量将非核心事务做成异步

u014218318的博客 287
上一篇: 解决mq消息一致性-消息中间件(一)
下一篇: push和pull方式对比-消息中间件(二)
solivemore
博客等级 码龄9年 6粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值