开源分布式事务解决方案-Seata,1.0.0版发布了

在经历了25个release之后,Seata于2019年底冬至日前一天21日发布了v1.0.0版本,大家普遍的印象是1.0.0版本的面世,意味着比较稳定,其实Seata在0.4.2版本之后就可以上生产环境。

开源分布式事务解决方案-Seata,1.0.0版发布了

题图 from pixabay

什么是分布式事务

分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。非单体的应用程序必须会涉及到分布式服务问题。

常见解决方案

  • 两阶段提交(2PC, Two-phase Commit)方案

  • 事件队列方案

  • TCC 补偿模式

  • 缓存数据最终一致性

这里仅讲讲Seata,其它方案,网络上有相当多的资源来阐述,这里不做过多介绍。

Seata是什么

Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。

在 Seata 开源之前,Seata 对应的内部版本在阿里经济体内部一直扮演着分布式一致性中间件的角色,帮助经济体平稳的度过历年的双11,对各BU业务进行了有力的支撑。经过多年沉淀与积累,商业化产品先后在阿里云、金融云进行售卖。2019.1 为了打造更加完善的技术生态和普惠技术成果,Seata 正式宣布对外开源。

Seata历史

Seata由TXC(Taobao Transaction Constructor,阿里于2014开始着手解决分布式事务的内部框架),后更名为GTX(Global Transaction Service,阿里于2016年将TXC发布于云服务并且改名为GTX),后又更名为Fescar(阿里于2019将GTS开源并改名为Fescar),继续演进为Seata(Simple Extensible Autonomous Transaction Architecture,阿里将蚂蚁金服框架DTX与Fescar结合并且改名为Seata),追溯其历史还是经历了一些起伏变化。

微服务框架支持

目前已支持 Dubbo、Spring Cloud、Sofa-RPC、Motan 和 grpc 等RPC框架,其他框架持续集成中。

模式支持

Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

  1. AT模式:提供无侵入自动补偿的事务模式,目前已支持 MySQL、 Oracle 的AT模式、PostgreSQL、H2 开发中

  2. TCC模式:支持 TCC 模式并可与 AT 混用,灵活度更高

  3. SAGA 模式:为长事务提供有效的解决方案

  4. 高可用:支持基于数据库存储的集群模式,水平扩展能力强

可参考Seata官网介绍:https://seata.io/了解更多Seata与阿里生态契合的很紧密,特别是spring-cloud-alibaba问世以来,将ali技术与spring系列融入的更加彻底。

 -End- 

开源分布式事务解决方案-Seata,1.0.0版发布了

长按2秒,识别二维码,关注我

回复“150”,获取知乎高赞回答150本优秀书籍


拓展阅读:

程序员的系统思考能

厉害的程序员都有自己的商业模式

一年如何阅读50本书

关于认知的一点个人思考

做一个有远见的程序员

由专栏订阅量引出的"程序员的道与术"

为什么很多大龄程序员说"技术不重要"

为什么技术团队领导者多是后台开发人员

聊聊技术学习的可持续性。