3.14 Go微服务实战(微服务理论) --- 微服务中的分布式事务管理
Posted enlyhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.14 Go微服务实战(微服务理论) --- 微服务中的分布式事务管理相关的知识,希望对你有一定的参考价值。
第14章 微服务中的分布式事务管理
14.1 微服务下的事务管理
14.1.1 面临的难题
14.1.2 SRP的折衷
14.2 微服务中处理事务的几种方式
用来管理事务的方法或者原则有很多种,如下:
1.避免使用跨服务的事务;
2.两部提交法,分别是XA标准和REST-AT标准;
3.最终一致性和补偿方案
14.2.1 避免跨微服务的事务
14.2.2 基于XA协议的两阶段提交协议
14.2.3 终一致性和补偿
14.3 Saga模式
14.3.1 Saga模式介绍
Saga模式的核心理念是避免使用长期持有锁的长事务,而应该将事务切分为一组按序依次提交的短事务,Saga模式满足ACD特征。
具体到Saga模式的事务管理器,有如下两种实现方式:
1.事件:一种分布式实现方式,通过事件驱动的方式进行事务协调,每个服务都需要将自己的事件通知其他服务,同时需要监听
其他服务的事件并决定如何应对。
2.编排:有一个集中的服务触发器,跟踪Saga模式中的所有步骤。
14.3.2 编排模式
14.3.3 编配模式
14.4 Saga模式的Go语言示例
14.4.1 Saga对象的Go语言实现
14.4.2 中央协调器的Go语言实现
以上是关于3.14 Go微服务实战(微服务理论) --- 微服务中的分布式事务管理的主要内容,如果未能解决你的问题,请参考以下文章
3.13 Go微服务实战(微服务理论) --- 微服务中的进程间通信
3.15 Go微服务实战(微服务理论) --- 领域驱动设计的Go语言实现
3.16 Go微服务实战(微服务理论) --- Go语言基于ES-CQRS的微服务实践