首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Linyb极客之路

    我说分布式事务之最大努力通知事务

    在之前的文章中,我们介绍了基于TCC模式的分布式事务解决方案 我说分布式事务之TCC 。 TCC适用于公司内部对一致性、实时性要求较高的业务场景,而本文我们讲解的“最大努力通知事务”是为解决跨网络、跨服务之间的柔性事务的另一种解决方案。 支付宝侧会通过某种机制(猜想是图中的消息队列机制)将通知请求扔到通知消息服务中,通知发送核心业务消费通知消息,并记录持久化消息到数据库中,发送通知消息给我方。 3. 方案评价 方案成本:该方案成本较低,主要花费在业务查询与校对系统建设成本。校对系统是单独的,例如离线的文件对账方式,通过双方定时导出日订单,做线下的互相对账,从而实现平账操作。 小结 本文对分布式事务解决方案的– 最大努力通知 柔性解决方案进行了较为详细的讲解,结合实例及笔者的工作经历,对方案的各个细节展开讲解,希望能够对读者有所帮助。

    69910编辑于 2022-03-10
  • 来自专栏程序猿DD

    我说分布式事务之最大努力通知事务

    来源:http://t.cn/E4ejkSN 在之前的文章中,我们介绍了基于TCC模式的分布式事务解决方案 我说分布式事务之TCC 。 TCC适用于公司内部对一致性、实时性要求较高的业务场景,而本文我们讲解的“最大努力通知事务”是为解决跨网络、跨服务之间的柔性事务的另一种解决方案。 首先看一下最大努力通知的流程图,如下图 ? 小结 本文对分布式事务解决方案的– 最大努力通知 柔性解决方案进行了较为详细的讲解,结合实例及笔者的工作经历,对方案的各个细节展开讲解,希望能够对读者有所帮助。 后续笔者会着手开发一款分布式事务的轮子,入手点将采用本文提到的模式,并最终达到基本可用。算是立了一个flag吧,完成之后会第一时间发文出来。 (又一个有生之年系列) 到目前为止,《我说分布式事务》 系列就过半了,之后我会对可靠消息一致性方案进行讲解,我们不见不散。 ·END·

    94120发布于 2018-12-28
  • 来自专栏架构探险之道

    数据库分布式事务

    数据库分布式事务 分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 对数据库分布式事务有了解的同学一定知道数据库支持的2PC,又叫做 XA Transactions。 总结 分布式事务,本质上是对多个数据库事务进行统一控制,按照控制力度可以分为:不控制、部分控制和完全控制。 第二种方案:TCC事务补偿,分为三个阶段TRYING-CONFIRMING-CANCELING。每个阶段做不同的处理。 分布式事务处理)] http://www.roncoo.com/course/view/7ae3d7eddc4742f78b0548aa8bd9ccdb [聊聊分布式事务,再说说解决方案] https:

    84020发布于 2019-07-25
  • 来自专栏小白鼠

    分布式事务数据库事务CAP定理BASE理论分布式事务案例

    数据库事务 断电了,该怎么处理?通过日志的方式! 在执行事务的时候数据库首先会记录下这个事务的redo操作日志,然后才开始真正操作数据库,在操作之前首先会把日志文件写入磁盘,那么当突然断电的时候,即使操作没有完成,在重新启动数据库时候,数据库会根据当前数据的情况进行 分布式事务 两段式提交(2PC) 两阶段提交就是使用XA协议的原理: 第一阶段:事务协调器要求每个涉及到事务数据库预提交(precommit)此操作,并反映是否可以提交. 第二阶段:事务协调器要求每个数据库提交数据。 其中,如果有任何一个数据库否决此次提交,那么所有数据库都会被要求回滚它们在此事务中的那部分信息。在CAP中,影响可用性。 上这种情况,我们都是假设A B 和 M之间不会丢失消息,如果在上面的 3 、5 步骤中发生丢失消息的情况就会出现问题,针对以上情况,有如下解决方案: 针对步骤3 当M收到一条事务消息后便开始计时,如果到了超时时间也没收到系统

    1.8K20发布于 2018-10-15
  • 中国金融行业分布式事务数据库市场份额,2024

    第一章:报告基础信息 报告标题:中国金融行业分布式事务数据库市场份额,2024 发布机构:IDC(International Data Corporation) 发布时间:2025年7月 第二章:报告背景和目标 中国金融行业分布式事务数据库2024年整体市场规模达到20.37亿元人民币,同比增长26.85%。 随着金融行业数字化转型深入,分布式数据库成为核心系统升级改造的关键技术,满足高并发、高可用及合规性要求。本报告旨在量化市场格局,为技术选型与战略决策提供数据支撑。 样本规模:覆盖主流分布式数据库厂商及上千家金融行业最终用户。 调研时间:2024年全年数据,收集工作于2025年1月完成。 分析模型:基于Share-nothing架构的商业化分布式事务数据库市场,聚焦OLTP场景,包括传统数据库改造、新系统开发等。

    24710编辑于 2026-05-01
  • 来自专栏小白鼠

    分布式事务数据库事务CAP定理BASE理论分布式事务案例

    分布式事务 分布式事务 数据库事务 断电了,该怎么处理?通过日志的方式! 在执行事务的时候数据库首先会记录下这个事务的redo操作日志,然后才开始真正操作数据库,在操作之前首先会把日志文件写入磁盘,那么当突然断电的时候,即使操作没有完成,在重新启动数据库时候,数据库会根据当前数据的情况进行 分布式事务 两段式提交(2PC) 两阶段提交就是使用XA协议的原理: 第一阶段:事务协调器要求每个涉及到事务数据库预提交(precommit)此操作,并反映是否可以提交. 第二阶段:事务协调器要求每个数据库提交数据。 其中,如果有任何一个数据库否决此次提交,那么所有数据库都会被要求回滚它们在此事务中的那部分信息。在CAP中,影响可用性。 上这种情况,我们都是假设A B 和 M之间不会丢失消息,如果在上面的 3 、5 步骤中发生丢失消息的情况就会出现问题,针对以上情况,有如下解决方案: 针对步骤3 当M收到一条事务消息后便开始计时,如果到了超时时间也没收到系统

    2.6K40发布于 2018-09-26
  • 来自专栏算法之美

    详解Mysql分布式事务XA(跨数据库事务

    在这种场景下,事务的提交会变得相对复杂,因为多个节点(库)的存在,可能存在部分节点提交失败的情况,即事务的ACID特性需要在各个不同的数据库实例中保证。 比如更新db1库的A表时,必须同步更新db2库的B表,两个更新形成一个事务,要么都成功,要么都失败。 那么我们如何利用MySQL实现分布式数据库事务呢? 数据库就是一种资源管理器。资源管理还应该具有管理事务提交或回滚的能力。 事务管理器(transaction manager):事务管理器是分布式事务的核心管理者。 分布式事务原理:分段式提交 分布式事务通常采用2PC协议,全称Two Phase Commitment Protocol。该协议主要为了解决在分布式数据库场景下,所有节点间数据一致性的问题。 应用层负责决定提交还是回滚,崩溃时的悬挂事务。MySQL数据库外部XA可以用在分布式数据库代理层,实现对MySQL数据库分布式事务支持,例如开源的代理工具:网易的DDB,淘宝的TDDL等等。

    8.6K31发布于 2019-05-05
  • 来自专栏冰河技术

    分布式事务】tcc-transaction分布式TCC事务框架搭建与实战案例(基于DubboDubbox)

    一、背景 有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了能够快速迭代上线,往往不太注重产品/项目/系统的高可靠性、高性能与高扩展性,采用单体应用和单实例数据库的架构方式快速迭代开发;当产品/ ,拆分后的数据库则同样又面临着让人头疼的分布式事务的问题。 本文就针对项目拆分后数据库分布式事务问题,基于tcc-transaction分布式TCC事务进行框架的搭建,同时引入相关的实战案例,来解决让人头疼的分布式事务问题。 二、tcc-transaction框架介绍 介绍:tcc-transaction是开源的TCC补偿性分布式事务框架,Git地址:https://github.com/changmingxie/tcc-transaction ,从而无法保存异常事务日志; 2.注意domain、tbSuffix的配置,这两项文档中并没有配置,但源码demo中配置了,用于数据库的表名称等,推荐配置; 3.最后的DefaultRecoverConfig

    96840发布于 2020-10-29
  • 来自专栏技术栈

    分布式事务数据库事务与JDBC事务实现(一)

    介绍事务的四大原则,并通过实例介绍数据库实现事务的方法,以及使用JDBC实现事务的方法。 事务是以一种可靠、一致的方式,访问和操作数据库中的数据的程序单元。 [bn0tfuwg1d.png] 以数据库事务演示为例sql: BEGIN TRANSACTION; --开启事务 UPDATE t_user SET amount = amount-100 WHERE JDBC事务管理:以java 程序为例子 Connection conn = getConnection(); // 创建数据库连接 conn.setAutoCommit(false); 这时再开一个查询窗口执行第二段sql,但第2行sql先不执行,从第3行开始执行,此时可以看到结果还是和最初的数据一致,没有增加也没有减少,这就是事务的隔离性:一个事务的执行过程中不能影响到其他事务的执行

    1.3K30发布于 2019-07-31
  • 来自专栏二马读书

    服务化带来的数据一致问题---分布式事务事务消息

    本文我们聊聊分布式事务事务消息的解决思路,通过阅读本文,可以理解分布式事务事务消息,并且能够应用到实际生产工作中。 服务化后单体系统被拆分成多个服务,各服务访问自己的数据库。 好,咱们这次就盘一盘分布式事务,最终一致,补偿机制,事务消息! 这次咱们以TCC分布式事务和RocketMQ事务消息为例,做详细分享!这个弄明白了,也就清楚分布式事务,最终一致,补偿机制这些概念啦! 因为这几步操作是在分布式环境下进行的,每个操作分布在不同的服务中,不同的服务又对应不同的数据库,本地事务已经用不上了! 1,发送半消息(所有事务消息都要经历确认过程,从而确定最终提交或回滚(抛弃消息),未被确认的消息称为“半消息”或者“预备消息”,“待确认消息”) 2,半消息发送成功并响应给发送方 3,执行本地事务

    2.6K20发布于 2020-11-04
  • 来自专栏全栈程序员必看

    saga分布式事务_本地事务分布式事务

    分布式事务:在分布式系统中一次操作需要由多个服务协同完成,这种由不同的服务之间通过网络协同完成的事务称为分布式事务 一、2PC: 2PC,两阶段提交,将事务的提交过程分为资源准备和资源提交两个阶段 如下图: 从上图可知事务执行到了支付事务T3,但是失败了,因此事务回滚需要从C3,C2,C1依次进行回滚补偿,对应的执行顺序为:T1,T2,T3,C3,C2,C1。 (2)缺点: 与具体的业务场景绑定,耦合性强,不可公用 消息数据与业务数据同库,占用业务系统资源 业务系统在使用关系数据库的情况下,消息服务性能会受到关系数据库并发性能的局限 六、MQ事务消息: 1 、MQ事务消息的执行流程: 基于MQ的分布式事务方案本质上是对本地消息表的封装,整体流程与本地消息表一致,唯一不同的就是将本地消息表存在了MQ内部,而不是业务数据库中,如下图: 八、各方案常见使用场景总结: 2PC/3PC:依赖于数据库,能够很好的提供强一致性和强事务性,但延迟比较高,比较适合传统的单体应用,在同一个方法中存在跨库操作的情况,不适合高并发和高性能要求的场景。

    4.1K31编辑于 2022-10-05
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:dtm分布式事务3

    在简单介绍完使用的例子后golang源码分析:dtm分布式事务(1)golang源码分析:dtm分布式事务(2),我们分析下服务端的源码实现。 err := GetStore().Ping(); cron job实现比较粗暴,启动一个协程,在内部的死循环里,交替执行事务和sleep gid := CronTransOnce() sleepCronTime trans.Gid branches := GetStore().FindBranches(gid) err := trans.Process(branches) 通过全局的事务 id,查找到对应的所有分支事务,然后调用Process来进行处理。 : trans} }) } 它对应的接口 func (t *transMsgProcessor) ProcessOnce(branches []TransBranch) error { 会处理相应的事务

    77410编辑于 2023-03-01
  • 来自专栏全栈程序员必看

    AnalyticDB_分布式分析数据库

    在分析数据库中,数据库是⽤户和系统管理员的管理职权的分界点 分析数据库是以数据库为粒度对⽤户的宏观资源进⾏配置,因此创建数据库时⽤户需要输⼊资源数⽬和资源类别来进⾏的资源分配。 分析数据库的⽤户不能直接通过CREATE DATABASE的DDL语句创建数据库,只能通过DMS控制 台界⾯来创建需要的业务数据库. 在分析数据库中,⼀个数据库对应⼀个⽤于访问的域名URL和端⼝号,同时有且只有⼀个owner即 数据库的创建者,如果数据库重建了,即便用回原来的数据库名,但URL和端口号还是要重新分配才能使用数据库。 分析数据库中表组分为两类:维度表组和事实表组。 ​ 一个数据库可以创建多个表组。 未经过数据仓库建模(例如:雪花、星型模型),而只是照搬交易数据库建模。

    3.2K20编辑于 2022-09-30
  • 来自专栏上云实践案例

    分布式关系数据库-TDSQL for Mysql

    选型背景 用于产品业务相关数据存储,兼容mysql,支持弹性自动水平扩容(实际上是因为接手的时候,已经用了这种数据库)TDSQL for MySQL。 实际使用情况 [TDSQLSQL数据库架构] 优点 弹性伸缩:由于我们的系统用户量比较小,还没体会到TDSQL各种牛B的能力,唯一使用比较多的能力就是支持在线缩容,为了节省成本。 the right syntax to use near '(CAST(custinfo->'$.zipcode' AS UNSIGNED ARRAY)) ) )' at line 5 总结 在选型数据库时 ,尽量选择兼容云原生的数据库,一些自研的产品在使用过程中出现了问题,很难排查原因只能找腾讯云去帮忙协助,通常排查周期会比较长,如果在让我选一次,我会选择使用完全兼容云原生的 “TDSQL-C MySQL 版(TDSQL-C for MySQL)是腾讯云自研的新一代云原生关系数据库”,详见:https://cloud.tencent.com/document/product/1003/30488

    3.6K20编辑于 2022-05-25
  • 来自专栏全栈程序员必看

    saga分布式事务_分布式事务原理

    大家好,又见面了,我是你们的朋友全栈君 saga是分布式事务领域里一个非常重要的事务模式,特别适合解决出行订票这类的长事务,本文将深度剖析saga事务的设计原理,以及在解决订票问题上的最佳实践 01 .saga的理论来源 saga这种事务模式最早来自这篇论文:sagas 在这篇论文里,作者提出了将一个长事务,分拆成多个子事务,每个子事务有正向操作Ti,反向补偿操作Ci。 Add(Busi+"/BookTicket", Busi+"/BookTicketRevert", bookTicketBackInfo3) 然后我们根据要求2,让saga并发执行(默认是顺序执行) saga.EnableConcurrent() 最后我们处理3里面的“预定结果的确认时间”不是即时响应的问题。 最后以一个现实中的问题案例,详细讲解dtm的saga事务使用 dtm是一个一站式的分布式事务解决方案,支持事务消息、SAGA、TCC、XA等多种事务模式,支持Go、Java、Python、PHP、C#、

    2.6K20编辑于 2022-09-29
  • 来自专栏程序猿人

    事务分布式事务

    应用程序需要依赖数据库提供的AID来实现C,但C并不属于数据库,所以ACID中的C有点拼凑的嫌疑。 3. I:隔离性(Isolation) 如在原子性的表述。 分布式事务也可以说是沿着这个思路,尝试建立可以让分布式应用忽略内部各种问题的抽象机制。 分布式事务 1. 3.分布式事务解决方案 3.1. 两阶段提交(Two-phase Commit Protocol,2PC) 提到2PC,不得不提XA规范。 事务管理器相当于协调者,负责各个本地资源的提交和回滚;而资源管理器就是分布式事务的参与者,通常为数据库。 总结 本文从本地事务的ACID引申到分布式事务的解决方案:从开始的2PC到3PC的升级点,再到后来CAP理论的引入让我们的目光从强一致性的追求上解脱出来,去考虑C(一致性)与A(可用性)的取舍。

    2.5K21发布于 2021-04-25
  • YashanDB数据库分布式事务机制深度解析

    在大规模业务环境中,数据库系统如何确保分布式环境下的事务一致性和高性能是核心难题。分布式事务管理的效率和可靠性直接影响到系统的整体可用性和数据准确性。 本文围绕YashanDB数据库,在分布式架构下的事务机制展开深入解析,系统阐述其事务管理框架、并发控制策略及故障恢复方案,以期为相关应用场景提供有力的技术支持和参考依据。 分布式事务的故障恢复分布式环境下,管理节点的故障由Raft协议快速重选主节点恢复事务调度,中断的事务由TM_SERVICE周期性扫描并发起恢复。未决事务根据日志状态决定提交还是回滚,确保数据状态一致。 结论YashanDB数据库基于成熟的分布式架构,构建了高效的分布式事务管理机制。通过事务协调、多版本并发控制、精细的锁策略及可靠的日志恢复机制,实现了强一致性和高可用的数据管理能力。 未来,随着数据规模和实时业务需求的不断增长,分布式事务的优化和自动化管理将成为数据库技术的关键竞争力,YashanDB将持续提升分布式事务的性能、扩展能力和容错能力,助力各类场景下的复杂数据处理和服务稳定运行

    33210编辑于 2025-08-27
  • 2025 IDC 中国银行业本地部署分布式事务数据库市场份额报告

    第一章:报告基础信息 报告标题:中国银行业本地部署分布式事务数据库市场份额, 2024 发布机构:IDC(International Data Corporation) 发布时间:2025年7 月 行业标签:国有大行, 泛金融, 商业银行 产品标签:#TDSQL, #分布式数据库 第二章:报告背景和目标 中国银行业在政策推动及数字化转型需求下,加速推进分布式事务数据库在核心业务系统的应用 样本覆盖中国主要银行机构及数据库厂商,核心分析模型基于Share-nothing架构的分布式事务数据库市场收入统计。数据收集时间为2024年全年,最终验证截至2025年1月。 解决方案:头部厂商通过性能优化(如MVCC、分布式锁管理)、智能运维工具及生态合作,支撑银行核心系统(对公、清算、会计核算等)分布式改造。 第六章:为什么选择腾讯云 腾讯云凭借TDSQL在银行业本地部署分布式事务数据库市场中位列第二,市场份额达20.96%,同比增长21.60%。

    17610编辑于 2026-05-01
  • 来自专栏allsmallpi博客

    分布式事务2PC && 3PC

    转载自 https://blog.csdn.net/secretx/article/details/53322989 分布式 二阶段提交(Two-phase Commit)是指,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法 通常,二阶段提交也被称为是一种协议(Protocol)… 在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败,却无法知道其他节点的操作的成功或失败。 2PC 无法解决这个问题,这个问题有可能导致数据不一致的 ,于是就有了3PC(三阶段提交) 3PC 三阶段提交(英语:Three-phase commit),也叫三阶段提交协议(英语:Three-phase commit protocol),是在计算机网络及数据库的范畴下,使得一个分布式系统内的所有节点能够执行事务的提交的一种分布式算法。 参考 wikipedia 分布式系统的事务处理 关于分布式事务、两阶段提交协议、三阶提交协议 深入理解分布式系统的2PC和3PC 吃水不忘挖井人:原文链接:http://int64.me/2016/%E5%

    1.2K10发布于 2021-02-25
  • 来自专栏分布式数据库杂谈

    浅谈交易分布式数据库(上)

    二、从单机数据库分布式数据库 业界起步阶段诞生的第一代交易数据库具有以下主要特点:和程序一起运行在大型机/小型机为代表的高端计算机上; 利用硬件层面大量冗余设计带来的强大可靠性来保障数据库可用性 由于上述所说的诸多成本原因,业界一直没有停止过尝试以x86服务器为代表的“廉价”硬件替换大型机来提供交易数据库服务的努力。 三、基于共享存储的分布式数据库方案 1. 由于交易业务往往都是企业中较为核心的往往会涉及金钱相关的线上业务,因此对数据库服务的可用性有比较高的要求。 共享盘存储方案在利用存储产品高可用性保障数据库可用性之余,又很好地利用了共享存储的数据共享优势提供多节点服务。 3. 至此可以看到,与共享盘存储方案相比,虽然写入请求只有一个读写节点可以提供服务,但该读写节点只需要负责请求解析、查询执行、事务管理、缓存管理等任务,而数据文件更新维护、数据页版本维护这部分数据库中开销极重的部分流程却拥有了水平扩展的能力

    1.4K40发布于 2021-09-02
领券