
分布式事务
架构魔方
这个作者很懒,什么都没留下…
展开
-
详解Mysql分布式事务XA
在开发中,为了降低单点压力,通常会根据业务情况进行分表分库,将表分布在不同的库中(库可能分布在不同的机器上)。在这种场景下,事务的提交会变得相对复杂,因为多个节点(库)的存在,可能存在部分节点提交失败的情况,即事务的ACID特性需要在各个不同的数据库实例中保证。比如更新db1库的A表时,必须同步更新db2库的B表,两个更新形成一个事务,要么都成功,要么都失败。 那么我们如何利用MySQL实现分转载 2017-07-07 14:17:42 · 949 阅读 · 0 评论 -
系统分布式情况下最终一致性方案梳理
前言 目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。 基础理论转载 2017-07-07 14:18:29 · 378 阅读 · 0 评论 -
分布式事务之最终一致的Mq实现
问题的起源分布式系统的特性对分布式系统有过研究的读者,可能听说过“CAP定律”、“Base理论”等,非常巧的是,化学理论中ACID是酸、Base恰好是碱。这里我们不对这些概念做过多的解释,有兴趣的读者可以查看相关参考资料。这里针对一致性我们做个简单的科普:分布式事务有强一致,弱一致,和最终一致性这三种:强一致当更新操作完成之后,任何多个后续进程或者线程的转载 2017-07-07 14:27:24 · 916 阅读 · 0 评论 -
系统分布式情况下最终一致性方案梳理
前言 目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。 基础理论转载 2017-07-07 14:32:51 · 333 阅读 · 0 评论 -
分布式事务处理解决方案
目前比较多的解决方案有几个:一、结合MQ消息中间件实现的可靠消息最终一致性二、TCC补偿性事务解决方案三、最大努力通知型方案第一种方案:可靠消息最终一致性,需要业务系统结合MQ消息中间件实现,在实现过程中需要保证消息的成功发送及成功消费。即需要通过业务系统控制MQ的消息状态第二种方案:TCC补偿性,分为三个阶段TRYING-CONFIRMING-CANCEL转载 2017-07-07 14:41:08 · 324 阅读 · 0 评论 -
分布式事务之说说TCC事务
http://blog.youkuaiyun.com/kobejayandy/article/details/54783212转载 2017-07-07 16:12:43 · 2098 阅读 · 0 评论 -
使用事件和消息队列实现分布式事务
不同于单一架构应用(Monolith), 分布式环境下, 进行事务操作将变得困难, 因为分布式环境通常会有多个数据源, 只用本地数据库事务难以保证多个数据源数据的一致性. 这种情况下, 可以使用两阶段或者三阶段提交协议来完成分布式事务.但是使用这种方式一般来说性能较差, 因为事务管理器需要在多个数据源之间进行多次等待. 有一种方法同样可以解决分布式事务问题, 并且性能较好, 这就是我这篇文章要介绍转载 2017-07-07 16:24:48 · 471 阅读 · 0 评论