一文搞懂如何选择合适的分布式事务技术
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 一、背景 传统单体系统时代,一个系统操作一个数据库存储。在系统运行时,单次请求或者说单个线程内对同一数据库数据的多次操作,均可通过开启本地事务,依赖数据库提供的事务特性,实现单个请求涉及数据操作的事务管理。但随着系统业务快速增长,单机系统无法支撑增长后的业务体量,数据库拆分、根据存储特性选用多种数据存储、系统拆分为微服务架构等都是常见的解决手段。 但是伴随这架构演进,在微服务架构体系中,传统单体系统中依赖本地事务的方式在分布式环境中已经无法满足需求,因为一个请求涉及的数据操作可能涉及多个服务、多次远程调用甚至多个数据存储。因此,在微服务架构体系,倘若特定场景下的核心业务流程,需要在业务处理时实现单次请求的事务管理,必须引入满足架构要求、满足业务要求的分布式事务技术。 本文主要是结合笔者自身在项目中特定业务落地分布式事务管理时对各项分布式事务解决方案的一些调研和思考,由于三阶段提交并未发现有成熟的开源技术,所以本文并未涉及。另外个人建议先对分布式相关理论比如:CAP、BASE等有基本了解后,再来深入思考各种解决方案,就不会有看时懂了完事忘了的感觉。 二、常见的解决方案 一般产生分布式事务的技术场景有下面三个方面: 微服务下跨服务操作不通数据库实例 单体系统跨数据库实例