1 | yaml复制代码版本: |
本文章demo地址:gitee.com/TZWw/spring…
1. 下载seata
1)地址:seata.io/zh-cn/blog/…
2)在conf文件夹修改file.conf文件
3)向本地数据库导入seata需要的表
- 创建名字为seata的数据库
- 新建表branch_table、global_table、lock_table
1 | scss复制代码CREATE TABLE `branch_table` ( |
1 | r复制代码CREATE TABLE `global_table` ( |
1 | sql复制代码CREATE TABLE `lock_table` ( |
4)修改registry.conf文件
5)将seata配置信息添加到nacos配置中心
1.启动本地的nacos服务
2.下载config.txt和nacos-config.sh两个文件
github.com/seata/seata…
github.com/seata/seata…
3.然后执行nacos-config.sh脚本
4.查看nacos中添加成功的配置
6)启动seata
进入bin目录下,执行
./seata-server.sh
出现下图即为启动成功
2. 服务间调用(服务one调用服务two)
1)创建one和two数据库,每个数据库都必须包含undo_log表
- one数据库
1 | sql复制代码CREATE TABLE `count` ( |
- two数据库
1 | sql复制代码CREATE TABLE `order` ( |
- 创建one和two服务
此处省略创建服务过程。。。
maven父工程依赖
1 | java复制代码<?xml version="1.0" encoding="UTF-8"?> |
- one服务:
bootstrap.yml文件
1 | java复制代码# Spring |
nacos中one的配置(service-one-dev.yml):
1 | yaml复制代码# Spring |
one服务依赖
1 | xml复制代码<dependencies> |
controller :
1 | java复制代码 @GetMapping("/insertOpt") |
serviceImpl
1 | java复制代码 @Override |
feign请求
1 | java复制代码@FeignClient(value = "service-two") |
- two服务
bootstrap.yml
1 | java复制代码# Spring |
pom.xml 依赖
1 | java复制代码 <dependencies> |
nacos中two服务的配置service-two-dev.yml
1 | java复制代码# Spring |
two服务controller
1 | java复制代码 @PostMapping("insertOne") |
serviceImpl
1 | java复制代码 /** |
3. 查看结果
- 插入成功操作
浏览器操作
serviceone的日志
servicetwo日志
数据库结果-插入成功 (清空数据库进行插入失败操作)
- 插入失败操作
1) 插入失败,进行回滚—在servicetwo业务代码上添加一个报错代码
浏览器操作
serviceone 日志(进行了回滚)
servicetwo 日志
数据库数据
4.成功~~~
我是Tz,想把我遇到的问题告诉你
本文转载自: 掘金