3.14go微服务实战(微服务理论)---微服务中的分布式事务管理

enlyhua enlyhua     2022-12-03     140

关键词:

第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.12go微服务实战(微服务理论)---微服务化策略

第12章 微服务化策略12.1 微服务架构风格 微服务有2个重要的风格:一是每个服务都是拥有独立的数据库;二是系统基于API的模块化。 12.1.1 每个服务都拥有独立的数据库 12.1.2 基于API的模块化12.2 微服务化进程中的重点问... 查看详情

3.15go微服务实战(微服务理论)---领域驱动设计的go语言实现

第15章 领域驱动设计的Go语言实现15.1 聚合模式介绍 实体(entity):可以持久化存储的对象 值对象(valueobject):值集合的对象,比如"钱"这个值对象包括"币种"和"金额"两个值的集合 工厂(factory):负责初始化对象的对象或方法 ... 查看详情

3.16go微服务实战(微服务理论)---go语言基于es-cqrs的微服务实践

第18章 Go语言基于ES-CQRS的微服务实践18.1 理论介绍 18.1.1 事件溯源 指的是将每次的事件都记录下来,而不是去记录对象的状态。只能追加,不能对已经添加的事件做修改。 18.1.2 命令查询职责分离 1.命令 不返回任何结果... 查看详情

3.16go微服务实战(微服务理论)---go语言基于es-cqrs的微服务实践

第18章 Go语言基于ES-CQRS的微服务实践18.1 理论介绍 18.1.1 事件溯源 指的是将每次的事件都记录下来,而不是去记录对象的状态。只能追加,不能对已经添加的事件做修改。 18.1.2 命令查询职责分离 1.命令 不返回任何结果... 查看详情

go微服务实战之如何实现加解密操作的微服务开发

1前言在上一篇文章——《​​Go微服务实战之如何使用go-micro写微服务应用​​》中,我们介绍了微服务的相关概念和go-micro框架的特点。接下来,我们将以循序渐进的方式建立一个简易的提供加解密服务的Go微服务项目。首先为... 查看详情

2.go语言高并发与微服务实战---微服务概述

第2章微服务概述2.1系统架构的演进 2.1.1单体架构 2.1.2垂直分层架构 2.1.3SOA面向服务架构 2.1.4微服务架构 2.1.5云原生架构2.2常见的微服务框架 2.2.1Java中的SpringCloud与Dubbo框架 2.2.2Go语言中的GoKit与GoMicro框架2.3微服务设计的六大原则 ... 查看详情

2.go语言高并发与微服务实战---微服务概述

第2章微服务概述2.1系统架构的演进 2.1.1单体架构 2.1.2垂直分层架构 2.1.3SOA面向服务架构 2.1.4微服务架构 2.1.5云原生架构2.2常见的微服务框架 2.2.1Java中的SpringCloud与Dubbo框架 2.2.2Go语言中的GoKit与GoMicro框架2.3微服务设计的六大原则 ... 查看详情

9.go语言高并发与微服务实战---微服务网关

第9章微服务网关 在微服务架构下,单体应用被切割成多个微服务,如果将所有的微服务直接对外暴露,势必会出现一些问题。客户端可以直接向每个微服务 发送请求,但是会存在如下问题: 1.客户端需求和每个微服务暴露的... 查看详情

go微服务实战,docker

 近几年,微服这个词闯入了我们的实线范围。在百度与谷歌中随便搜一搜也有几千万条的结果。那么,什么是微服务呢?微服务的概念是怎么产生的呢?我们就来了解一下Go语言与微服务的千丝万缕与来龙去脉。什么是微服务... 查看详情

10.go语言高并发与微服务实战---微服务的容错处理与负载均衡

第10章微服务的容错处理与负载均衡10.1服务熔断 10.1.1分布式系统中的服务雪崩 10.1.2服务熔断保障系统可用性 10.1.3断路器10.2负载均衡 1.负载均衡类型 2.负载均衡算法      查看详情

go微服务实战之如何使用go-micro写微服务应用

什么是微服务?什么是微服务(microservice)?这是企业界正在向计算界提出的问题。一个产品的可持续性取决于它的可修改程度。大型产品如果不能正常维护,就需要在某个时间点停机维护。而微服务架构用细化的服务取代了传... 查看详情

chrisrichardson微服务实战系列

微服务实战(一):微服务架构的优势与不足微服务实战(二):使用APIGateway微服务实战(三):深入微服务架构的进程间通信微服务实战(四):服务发现的可行方案以及实践案例微服务实践(五):微服务的事件驱动数据... 查看详情

微服务实战:选择微服务部署策略

 微服务实战(一):微服务架构的优势与不足微服务实战(二):使用APIGateway微服务实战(三):深入微服务架构的进程间通信微服务实战(四):服务发现的可行方案以及实践案例微服务实践(五):微服务的事件驱动... 查看详情

微服务实战:深入微服务架构的进程间通信

    微服务实战(三):深入微服务架构的进程间通信【编者的话】这是采用微服务架构创建自己应用系列第三篇文章。第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使用微服务架构的优缺... 查看详情

微服务实践:微服务的事件驱动数据管理

 微服务实战(一):微服务架构的优势与不足微服务实战(二):使用APIGateway微服务实战(三):深入微服务架构的进程间通信微服务实战(四):服务发现的可行方案以及实践案例微服务实践(五):微服务的事件驱动... 查看详情

微服务实践:从单体式架构迁移到微服务架构

 微服务实战(一):微服务架构的优势与不足微服务实战(二):使用APIGateway微服务实战(三):深入微服务架构的进程间通信微服务实战(四):服务发现的可行方案以及实践案例微服务实践(五):微服务的事件驱动... 查看详情

springcloud微服务实战

第1章课程介绍课程导学和学习建议第2章微服务介绍什么是微服务,单体架构优缺点,常见的几种架构模式。第3章服务注册与发现介绍微服务中的服务注册与发现机制,SpringCloudEureka组件的使用以及如何保证高可用第4章服务拆分以... 查看详情

微服务实战:深入微服务架构的进程间通信

【编者的话】这是采用微服务架构创建自己应用系列第三篇文章。第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使用微服务架构的优缺点。第二篇描述了采用微服务架构应用客户端之间如何采用APIGateway... 查看详情