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

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

    在之前的文章中,我们介绍了基于TCC模式的分布式事务解决方案 我说分布式事务之TCC 。 TCC适用于公司内部对一致性、实时性要求较高的业务场景,而本文我们讲解的“最大努力通知事务”是为解决跨网络、跨服务之间的柔性事务的另一种解决方案。 支付宝侧会通过某种机制(猜想是图中的消息队列机制)将通知请求扔到通知消息服务中,通知发送核心业务消费通知消息,并记录持久化消息到数据库中,发送通知消息给我方。 否则,主动方会按照一定策略,比如“时间衰减策略”,对通知失败的请求从持久层中取出,比如:24小时内,按照间隔1min、5min、10min、30min、1h、2h、5h、10h的方式,逐步拉大通知间隔, 小结 本文对分布式事务解决方案的– 最大努力通知 柔性解决方案进行了较为详细的讲解,结合实例及笔者的工作经历,对方案的各个细节展开讲解,希望能够对读者有所帮助。

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

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

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

    94120发布于 2018-12-28
  • 来自专栏林欣哲

    10 分钟看懂分布式事务

    单一数据库可以简单的使用事务来保证一致性,但是分布式的问题则需要分布式事务来控制数据的一致性。 分布式事务的产生的原因 数据库分库分表 由于单表的数据量巨大导致的分库分表,则会涉及到多个数据库的一致性问题。 应用SOA化 业务的服务化。 多个业务中心有各自的数据库,也会涉及多个数据库的一致性问题 事务的ACID特性 分布式事务本质也是一个事务,则需要满足ACID特性。 常见的分布式事务解决方案 两阶段提交--XA提交机制 XA中大致分为两部分: 事务管理器:作为全局的调度者,负责各个本地资源的提交和回滚 本地资源管理器:往往由数据库实现 XA机制将提交过程两个阶段 prepare 参考资料 分布式最终一致方案梳理,Bright Moon ‘ s Blog,https://www.cnblogs.com/BrightMoon/p/5622618.html 深入理解分布式事务,高并发下分布式事务的解决方案

    1.1K50发布于 2018-04-17
  • 来自专栏架构探险之道

    数据库分布式事务

    数据库分布式事务 分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 事务的ACID特性 A 原子性: 在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态。 对数据库分布式事务有了解的同学一定知道数据库支持的2PC,又叫做 XA Transactions。 总结 分布式事务,本质上是对多个数据库事务进行统一控制,按照控制力度可以分为:不控制、部分控制和完全控制。 第二种方案:TCC事务补偿,分为三个阶段TRYING-CONFIRMING-CANCELING。每个阶段做不同的处理。

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

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

    数据库事务 断电了,该怎么处理?通过日志的方式! 在执行事务的时候数据库首先会记录下这个事务的redo操作日志,然后才开始真正操作数据库,在操作之前首先会把日志文件写入磁盘,那么当突然断电的时候,即使操作没有完成,在重新启动数据库时候,数据库会根据当前数据的情况进行 分布式事务 两段式提交(2PC) 两阶段提交就是使用XA协议的原理: 第一阶段:事务协调器要求每个涉及到事务数据库预提交(precommit)此操作,并反映是否可以提交. 第二阶段:事务协调器要求每个数据库提交数据。 其中,如果有任何一个数据库否决此次提交,那么所有数据库都会被要求回滚它们在此事务中的那部分信息。在CAP中,影响可用性。 假设现在有三个系统:系统A、消息中间件M、系统B,在A 和 B 之间存在分布式事务的需求。 根据分布式事务这篇文章上方案二的理解,大概是这么个流程: A向M 发送一条消息,告诉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、消息中间件M、系统B,在A 和 B 之间存在分布式事务的需求。 根据分布式事务这篇文章上方案二的理解,大概是这么个流程: A向M 发送一条消息,告诉M它准备干活了。

    2.6K40发布于 2018-09-26
  • 来自专栏小白晋级大师

    分布式系统学习10分布式事务

    这是小卷对分布式系统架构学习的第13篇文章,今天学习面试中高频问题:分布式事务,为什么要用分布式事务分布式事务的实现方案有哪些,方案对比优缺点 1.知识体系 1.为什么要用分布式事务 单体架构时,以本地事务为例 ,业务场景是下单场景,用户下单、创建订单、扣减库存这些操作都可以在一个数据库事务中完成。 下单场景需要在多个服务间操作,需要保证所有操作都能成功,保证整个下单流程的数据一致性,就需要用到分布式事务了 2.理论 分布式理论的CP -> 刚性事务 遵循ACID,对数据要求强一致性 分布式理论的AP (CP模式) 刚性事务指的是强一致性,基础是XA协议,XA协议是一个基于数据库分布式事务协议,其分为两部分:事务管理器(Transaction Manager)**和**本地资源管理器(Resource ,影响整个系统数据一致性; 超时导致的同步阻塞问题:2PC中所有参与者节点都是事务阻塞,当一个节点通信超时,其余参与者都会被阻塞; 单点故障的风险:整个过程严重依赖协调者,如果协调者故障,参与者处于锁定资源的状态

    37600编辑于 2025-01-26
  • 来自专栏算法之美

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

    比如更新db1库的A表时,必须同步更新db2库的B表,两个更新形成一个事务,要么都成功,要么都失败。 那么我们如何利用MySQL实现分布式数据库事务呢? 数据库就是一种资源管理器。资源管理还应该具有管理事务提交或回滚的能力。 事务管理器(transaction manager):事务管理器是分布式事务的核心管理者。 分布式事务原理:分段式提交 分布式事务通常采用2PC协议,全称Two Phase Commitment Protocol。该协议主要为了解决在分布式数据库场景下,所有节点间数据一致性的问题。 应用层负责决定提交还是回滚,崩溃时的悬挂事务。MySQL数据库外部XA可以用在分布式数据库代理层,实现对MySQL数据库分布式事务支持,例如开源的代理工具:网易的DDB,淘宝的TDDL等等。 ; } //$dbtest2 $return = $dbtest2->query("UPDATE memberpoints SET point=point+10 WHERE memberid

    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); ,即一个事务内部的操作及使用的数据对其他事务是隔离的,并发执行各个事务之间无不干扰。

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

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

    本文我们聊聊分布式事务事务消息的解决思路,通过阅读本文,可以理解分布式事务事务消息,并且能够应用到实际生产工作中。 服务化后单体系统被拆分成多个服务,各服务访问自己的数据库。 而我们的一次请求操作很可能要跨多个服务,同时要操作多个数据库的数据,我们发现以前用的数据库事务不好用了。那么基于微服务的架构如何保证数据一致性呢? 好,咱们这次就盘一盘分布式事务,最终一致,补偿机制,事务消息! 这次咱们以TCC分布式事务和RocketMQ事务消息为例,做详细分享!这个弄明白了,也就清楚分布式事务,最终一致,补偿机制这些概念啦! 因为这几步操作是在分布式环境下进行的,每个操作分布在不同的服务中,不同的服务又对应不同的数据库,本地事务已经用不上了!

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

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

    分布式事务:在分布式系统中一次操作需要由多个服务协同完成,这种由不同的服务之间通过网络协同完成的事务称为分布式事务 一、2PC: 2PC,两阶段提交,将事务的提交过程分为资源准备和资源提交两个阶段 ,则由 Saga 事务协调器协调根据相反顺序调用补偿操作,回滚已提交的参与者,使分布式事务回到最初始的状态。 (2)缺点: 与具体的业务场景绑定,耦合性强,不可公用 消息数据与业务数据同库,占用业务系统资源 业务系统在使用关系数据库的情况下,消息服务性能会受到关系数据库并发性能的局限 六、MQ事务消息: 1 、MQ事务消息的执行流程: 基于MQ的分布式事务方案本质上是对本地消息表的封装,整体流程与本地消息表一致,唯一不同的就是将本地消息表存在了MQ内部,而不是业务数据库中,如下图: ,保证事务主动方发写业务表数据和写消息表数据的一致性是基于数据库事务,而 RocketMQ 的事务消息相对于普通 MQ提供了 2PC 的提交接口,方案如下: (1)正常情况: 在事务主动方服务正常,

    4.1K31编辑于 2022-10-05
  • 来自专栏上云实践案例

    分布式关系数据库-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
  • 来自专栏全栈程序员必看

    AnalyticDB_分布式分析数据库

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

    3.2K20编辑于 2022-09-30
  • 来自专栏全栈程序员必看

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

    大家好,又见面了,我是你们的朋友全栈君 saga是分布式事务领域里一个非常重要的事务模式,特别适合解决出行订票这类的长事务,本文将深度剖析saga事务的设计原理,以及在解决订票问题上的最佳实践 01 .saga的理论来源 saga这种事务模式最早来自这篇论文:sagas 在这篇论文里,作者提出了将一个长事务,分拆成多个子事务,每个子事务有正向操作Ti,反向补偿操作Ci。 能够把子事务执行的结果保存到状态机,并在后续的子事务中作为输入 允许没有依赖的子事务之间并发执行 这种方式的优点是: 功能强大,事务可以灵活自定义 缺点是: 状态机的使用门槛非常高 SAGA的定位是一致性要求较低的长事务/短事务。 最后以一个现实中的问题案例,详细讲解dtm的saga事务使用 dtm是一个一站式的分布式事务解决方案,支持事务消息、SAGA、TCC、XA等多种事务模式,支持Go、Java、Python、PHP、C#、

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

    事务分布式事务

    应用程序负责正确定义事务,并保持一致性。这并不是数据库可以保证的事情,数据库只负责存储,至于存储的是不是脏数据,需用它的用户来定义。 分布式事务也可以说是沿着这个思路,尝试建立可以让分布式应用忽略内部各种问题的抽象机制。 分布式事务 1. 事务管理器相当于协调者,负责各个本地资源的提交和回滚;而资源管理器就是分布式事务的参与者,通常为数据库。 TCC(Try-Confim-Cancel) TCC是除可靠消息队列外的另一种常见的分布式事务机制,由数据库专家帕特 · 赫兰德(Pat Helland)提出。 一部分是把大事务拆分为若干个小事务,将整个分布式事务T分解为n个子事务,我们命名T1,T2,...,Ti,...,Tn。每个子事务都应该、或者能被看做是原子行为。

    2.5K21发布于 2021-04-25
  • 来自专栏潜行前行

    10分钟说透Saga分布式事务

    开篇 随着微服务架构的兴起,越来越多的公司会在实际场景中遇到分布式事务的问题。特别是在金融应用场景,几个跨进程的应用共同完成一个任务,就更离不开分布式事务的参与。 而对于分布式事务而言,2PC、TCC也是经常被提到了,不过在面对长业务流程,并且很难进行TCC改造的场景,会选择使用Saga分布式事务。 今天会给大家介绍Saga实现分布式事务的内容: Saga的分布式解决方案 Saga处理事务一致性 Saga分布式事务协调 Saga的分布式解决方案 随着互联网的快速发展,原来的单体应用已经很难支撑大流量高并发的请求了 图1 单体到分布式的系统架构过渡 在进行分布式部署之后,会存在多个服务共同完成一个事务操作,并且这些服务彼此都存在于不同的服务器或者网络环境,服务之间需要通过网络远程协作完成事务称之为分布式事务。 Saga是一个长活事务可被分解成可以交错运行的子事务集合。其中每个子事务都是一个保持数据库一致性的真实事务。 在这位老兄的论文中提到,每个Saga由一系列sub-transaction Ti组成。

    14.8K33发布于 2021-06-25
  • 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
  • 来自专栏杨建荣的学习笔记

    分布式关系数据库RadonDB体验归来

    前段时间收到吴老师的邀请,是参加青云QingCloud分布式数据库(RadonDB)的一个技术体验活动,从今天的技术体验来算,收获还是很多的,大家相聊甚欢,交流了很多工作中和工作之外的想法,原来那些我们看起来难走的路大家都曾经走过 方向的目前的技术架构是一种看起来相对稳定的体系,一般来说传统的主从复制,半同步,一主多从,到分库分表,加上中间件,高可用,好像可玩的花样就差不多这些了,所以基于这些我们只能说MySQL的这种使用方式是基于分布式架构 但是随着下午和设计师雁飞和RadonDB团队的深入交流,发现这个架构确实很有意思,能够在已有的架构模式下玩出新的花样,而且确实解决了分布式方案的基本需求,很难得。 3.对于关系数据库来说,要实现扩容影响面是很大的。 我简单提两点: 首先,RandonDB的角色其实就是一个中间件,类似ProxySQL,MyCAT之类的中间件,能够实现基本的SQL转发,这里考虑到给以后的分布式事务设计带来技术改进,目前的SQL

    2.8K40发布于 2018-07-26
领券