BpFile(id=142, bpId=134, name=微服务分布式事务, author=null, keyword=VPC,全局事务,容器服务kubernetes版,RDS,微服务引擎, description=微服务应用存在多个服务间的事务,采用全局事务服务高效提供事务方案,满足数据一致性, position=null, ossUrl=bp-8TF9ZT6JSIKVLFS6.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=0, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
场景描述
本文档适用于在分布式应用中,多个服务间存在
分布式事务的场景。通过阿里云全局事务服务
(GTS)保障数据的最终一致性,提供简单、易
用、高效的分布式事务解决方案。
解决问题
1. 微服务应用的分布式事务解决方案,保障
数据的最终一致性。
2. 和业务解耦,降低架构复杂性,对业务无
侵入的方案。
产品列表
⚫ 全局事务服务(GTS)
⚫ 容器服务 Kubernetes 版(ACK)
⚫ 微服务引擎(MSE)
⚫ 关系数据库服务(RDS)
, templateId=null, freetry=null, visitTime=null, visitCount=null, video_url=null, buttonName=null, buttonUrl=null, targetId=null, partner=null, partnerUrl=null, partnerLogo=null, cooperation=null, cooperationList=null)
1
微服务分布式事务 最佳实践
场景描述
本文档适用于在分布式应用中,多个服务间存在
分布式事务的场景。通过阿里云全局事务服务
(GTS)保障数据的最终一致性,提供简单、易
用、高效的分布式事务解决方案。
解决问题
1. 微服务应用的分布式事务解决方案,保障
数据的最终一致性。
2. 和业务解耦,降低架构复杂性,对业务无
侵入的方案。
产品列表
⚫ 全局事务服务(GTS)
⚫ 容器服务 Kubernetes 版(ACK)
⚫ 微服务引擎(MSE)
⚫ 关系数据库服务(RDS)
2云服务器 ECS(产品名称) 文档模板(手册名称)/文档版本信息
阿里云
微服务分布式事务
最佳实践
文档版本:20200224(发布日期)
文档版本:20150122(发布日期) II
3微服务分布式事务 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 微服务分布式事务最佳实践
文档编号 134
文档版本 V1.0
版本日期 2020-02-24
文档状态 -
制作人 久诚
审阅人 宋宇 敬海
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2020-02-02 久诚 宋宇 敬海 创建
V1.1 2020-02-24 筱晖 - 文档工程师优化
文档版本:20200224(发布日期) I
4微服务分布式事务 前言
前言
概述
本实践针对采用微服务架构的应用,多个微服务间存在分布式事务,需要保证分布式
事务的数据最终一致性,同时实现事务管理与业务实现解耦,提供一种简单、易用、高
效的分布式事务解决方案。
应用范围
⚫ 适用于 Spring Cloud等分布式应用的多个微服务间的分布式事务管理
⚫ 通过 MSE提供的 Eureka简化服务注册的部署和管理
名词解释
⚫ VPC:Virtual Private Cloud,简称 VPC。基于阿里云创建的自定义私有网络, 不
同的专有网络之间二层逻辑隔离,可以在自己创建的专有网络内创建和管理云产
品实例,比如 ECS、负载均衡、RDS等。在创建前,您需要结合具体业务,规划
VPC 和交换机的数量及网段等。更多信息,请参见:
https://www.aliyun.com/product/vpc
⚫ MSE:微服务引擎 ( MSE ) 是开源注册、配置中心的全托管平台,提供高可用、
免运维的 Zookeeper、Nacos 注册中心 和 Eureka 等集群,完全兼容开源产品
标准接口,无需修改代码、开箱即用,并为客户提供相应的监控和运维工具。更多
信息,请参见:https://www.aliyun.com/product/mse
⚫ ACK:容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理
能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络
和安全能力,打造云端最佳容器化应用运行环境。更多信息,请参见:
https://www.aliyun.com/product/kubernetes
⚫ RDS:Relational Database Service,简称 RDS,是一种稳定可靠、可弹性伸缩
的在线数据库服务。基于阿里云分布式文件系统和 SSD盘高性能存储,RDS支
持 MySQL、SQL Server、PostgreSQL、PPAS和 MariaDB引擎,提供了容灾、
备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。更
多信息,请参见:https://www.aliyun.com/product/rds/mysql
文档版本:20200224(发布日期) III
5微服务分布式事务 目录
目录
文档版本信息 .............................................................................................................................................................. I
法律声明 ..................................................................................................................................................................... II
前言 ............................................................................................................................................................................ III
目录 ............................................................................................................................................................................ IV
最佳实践概述 ............................................................................................................................................................. 1
前置条件 ..................................................................................................................................................................... 2
演示环境说明 ............................................................................................................................................................. 3
1. 分布式事务概述 ................................................................................................................................................. 4
2. 应用资源申请 ..................................................................................................................................................... 6
2.1. 创建并配置RAM用户 ........................................................................................................................ 6
2.2. 部署网络环境 ................................................................................................................................... 12
2.3. 在MSE中为应用构建Eureka引擎 ................................................................................................. 14
2.4. 创建并配置RDS实例 ....................................................................................................................... 18
2.4.1. 创建RDS实例 ........................................................................................................................... 18
2.4.2. 创建数据库和账号 ................................................................................................................... 22
2.4.3. 登录并创建数据库表 ............................................................................................................... 25
2.5. 创建ACK集群 ................................................................................................................................... 28
2.6. 开通GTS(创建事务分组) ............................................................................................................ 35
3. 微服务应用部署 ............................................................................................................................................... 38
3.1. 微服务应用构建 ............................................................................................................................... 38
3.2. 创建并配置镜像仓库 ....................................................................................................................... 39
3.3. 制作应用镜像 ................................................................................................................................... 42
3.3.1. 创建虚拟机 ............................................................................................................................... 42
3.3.2. 制作应用镜像 ........................................................................................................................... 47
3.4. 部署应用和服务 ............................................................................................................................... 50
3.4.1. 创建应用 ................................................................................................................................... 50
3.4.2. 验证所有服务注册成功............................................................................................................ 54
4. 全局事务验证 ................................................................................................................................................... 58
4.1. 查看数据库数据 ............................................................................................................................... 58
4.2. 验证成功流程 ................................................................................................................................... 60
4.3. 验证回滚流程 ................................................................................................................................... 61
5. 附录 ................................................................................................................................................................... 63
5.1. 全局事务基本原理 ........................................................................................................................... 63
文档版本:20200224(发布日期) IV
6最佳实践概述
微服务分布式事务
最佳实践概述
方案架构
⚫ 在阿里云采用容器服务(ACK)和微服务引擎(MSE)部署一个 Spring Cloud
微服务应用。
⚫ 微服务之间存在分布式事务,事务采用 GTS进行全局事务管理。
⚫ 微服务失败时,全局事务回滚,保证数据最终一致性。
方案优势
⚫ 全局事务管理和业务流程解耦,是无侵入的事务管理方案。
⚫ 保障分布式应用的数据最终一致性需求。
⚫ 适合 Spring Cloud等微服务架构的简单、易用、高效的分布式事务解决方案。
文档版本:20200224(发布日期) 1
7前置条件
微服务分布式事务
前置条件
在进行本文操作前,您需要完成以下准备工作:
⚫ 注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页
面(https://account.console.aliyun.com/v2/#/authc/home)查看是否已经完成实名
认证。
⚫ 阿里云账户余额大于 100 元。您可以登录阿里云控制台,并前往账户总览页面
(https://expense.console.aliyun.com/#/account/home)查看账户余额。
文档版本:20200224(发布日期) 2
8微服务分布式事务 演示环境说明
演示环境说明
⚫ 为了便于演示,在本文中涉及到开通资源时,均默认选择按量付费模式开通。
⚫ 本方案仅作为实践演示,具体环境以用户实际需求为准。
文档版本:20200224(发布日期) 3