一文教你迅速解决分布式事务XA一致性问题
近日,腾讯云发布了分布式数据库解决方案(DCDB),其最明显的特性之一就是提供了高于开源分布式事务XA的性能。大型业务系统有着用户多、并发高的特点,在这方面,集中式数据库(单机数据库)的性能很难支持,因此主流的互联网公司往往采用分布式(架构)数据库,物理上利用更多的低端设备,逻辑上对大表水平拆分支撑业务的需要。
虽然分布式数据库能解决性能难题,但事务一致性(Consistency)的问题,却很难在分布式数据库上得到解决。
分布式事务老大难题,数据一致难以实现
众所周知,一个事务所做的更新,分布式数据库系统内部多个独立的数据节点完成(每个节点的本地事务是这个全局事务的一个事务分支),在这样一个全局事务提交期间,有可能某些事务分支无法成功提交。
针对这一问题,虽然业内早已存在理论解决方案——二阶段提交协议(简称2PC),并延伸出分布式事务(简称XA)的解决方案。但业内却少有工程化实现且大规模应用的案例。而腾讯云分布式数据库DCDB,却已在内部业务中应用多年。
(图:二阶段提交算法)
目前DCDB已应用在腾讯内部90%以上的交易、计费业务,并且三一重工(树根互联)、汇通天下(G7)、阅文集团(起点/创世中文网等)、微众银行、和泰人寿、威富通等都在该产品。
腾讯云首发分布式数据库XA,支持MySQL 5.7
腾讯云分布式数据库DCDB,是基于腾讯金融级数据库(公司内部代号TDSQL)云化改造而来的兼容MySQL协议的分布式数据库。现如今,腾讯云DCDB已经正式在MySQL 5.7(percona分支)协议上支持分布式事务XA,并已在腾讯云公有云、金融云发布供开发者使用。开发者可以通过申请DCDB实例,并在初始化后,连接实例运行如下sql进行初始化:
MySQL> xa init;
Query OK, 0 rows affected (0.03 sec)
注意:初始化xa前,请开启强同步复制能力,另外该sql会创建xa.gtid_log_t,用户在后续使用中万勿对其进行任何操作。。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
一文教你迅速解决分布式事务XA一致性问题
下载Word文档到电脑,方便收藏和打印~