前言
现在比较流行的分布式架构而言,它虽然带来一系列好处,比如支持高并发,高可用集群。同时它也带来一系列的挑战,今天我们将的就是其中一种挑战 - 分布式事务 。
在传统的 all in 项目中单数据源的事务一致性依赖于单机事务,但是如果上升到分布式项目中,那么保证事务的一致性仅仅依靠单机事务是不能实现的,这时候就依赖于分布式事务。
介绍
目前业界比较主流的分布式事务解决方法大概可以分为两种
- 强一致性
- 最终一致性
强一致性
主要解决方法代表有 2PC 、 Tcc 适用于 金融交易场景
最终一致性
主要解决方法代表有 RocketMQ事务消息 适用于常见的积分订单场景,1、比如创建订单 2、如果订单创建成功 3、增加买家积分 不管中途发生了什么 只要订单成功,那么买家的积分就一定要增加。保证最终一致性。
实现架构
术语介绍
- HALF MESSAGE : 事务消息 也称半消息 标识该消息处于"暂时不能投递"状态,不会被Comsumer所消费,待服务端收到生成者对该消息的commit