SpringCloud Seata【解决分布式事务的问题】安装
1. 问题引出
1.1 单机单库(多表)处理事务示意图
1.2 分布式微服务架构下的数据库事务示意图
图片梳理:用户购买商品的业务逻辑。整个业务逻辑由3个微服务提供支持:
- 仓库服务:对给定商品 扣除商品数量
- 订单服务:根据采购需求创建订单
- 账户服务:从用户账户中扣除余额
问题分析:
- 单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源
- 业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证
- 但是 全局的数据一致性 问题没法保证
- 简单地说:一次业务操作需要跨多个数据源或跨多个系统进行远程调用,就会产生 分布式事务 问题
2. 安装 Seata
2.1 修改 file.conf
修改自定义的事务组
修改事务日志存储
相应修改用户名和密码
2.2 在 Mysql5.7 中创建 seata 数据库
在 seata 数据库建表,使用 seata 提供的 sql 脚本即可,在 seata 的 \conf\db_store.sql
运行后可以发现:建立了 3 张表
2.3 修改 registry.conf,配置注册中心 Nacos Server
3. 测试:看 Seata Server 是否安装成功
- 启动 Nacos Server 8848
- 双击 Seata 的 \bin\seata-server.bat,启动 Seata Server
- 登录 Nacos Server,查看 Seata Server 是否注册成功