Seata 1.4.0 + nacos配置和使用,超详细
一、环境配置
1.软件下载
下载地址:http://seata.io/zh-cn/blog/download.html
2.修改配置文件
下载后目录如下图所示,解压
我们进入conf目录
①修改file.conf
②修改registry.conf
3.将配置导入到nacos
①nacos-config.sh脚本准备
在conf文件夹内,需要nacos-config.sh文件,这个文件1.4.0版本是没有的。下面有获取地址。
②config.txt准备
在conf同级目录,需要config.txt文件,1.4.0版本也没有,下面有获取地址。
修改config.txt
③这两个文件的作用
config.txt就是seata各种详细的配置,执行 nacos-config.sh 即可将这些配置导入到nacos,这样就不需要将file.conf和registry.conf放到我们的项目中了,需要什么配置就直接从nacos中读取。
④执行导入
打开git bash,进入
在git bash界面输入 :
sh nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 0af6e97b-a684-4647-b696-7c6d42aecce7 -u nacos -w nacos
注:命令解析:-h -p 指定nacos的端口地址;-g 指定配置的分组,注意,是配置的分组;-t 指定命名空间id; -u -w指定nacos的用户名和密码,同样,这里开启了nacos注册和配置认证的才需要指定。
回车,如下图,导入成功的标志。
在nacos页面可以看到各种配置。这个seata的命名空间是我自己创建的,各位按需求自行创建即可。
4.数据库配置
开始我们新建的数据库还有我们的业务的数据库,也需要进行相应的表的建立。
这里需要两个sql文件,在1.4.0版本中也是没有的,可从0.9.0版本中获取,我会在文章最后分享所有文件的百度云连接。
按照图示,需要在seata数据库中执行db_store.sql
在我们的业务数据库中执行db_undo_log.sql
5.添加logs文件夹
这个时候我们直接启动会报没有log文件的异常,按下图操作即可。
6.启动seata
直接cmd执行bat脚本即可
启动成功后如图所示,没报错就是启动成功了,
我们在nacos服务列表中可以看到注册的seata服务。由于服务我并没有配置命名空间,只指定了分组,因此在public命名空间里能看到此服务,各位按需要在registry.conf修改即可。
二、项目配置
上面的工作完成后,项目配置就很轻松了。
注:这里我用的springcloud alibaba 是2.2.3版本的
①父工程依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
②子工程依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>
③项目模块yml配置
注:这里以auth认证模块和user模块举例,我们程序的入口在auth,auth会调用user模块中的接口,在user模块中会进行插入操作,异常在auth模块中发生。想要进行回滚,两个模块都需要引入seata并进行相应的配置,yml配置如下:
seata:
enabled: true
enable-auto-data-source-proxy: true
tx-service-group: my_test_tx_group
registry:
type: nacos
nacos:
application: seata-server
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
config:
type: nacos
nacos:
server-addr: 127.0.0.1:8848
group: SEATA_GROUP
username: nacos
password: nacos
namespace: 0af6e97b-a684-4647-b696-7c6d42aecce7
service:
vgroup-mapping:
my_test_tx_group: default
disable-global-transaction: false
client:
rm:
report-success-enable: false
主要事项:如下图
nacos中的配置:
注:这个字段my_test_tx_group和值,都可以在config.txt中修改,我用的是默认的。
三、项目运行
经测试能正常回滚
四、Seata所需的文件分享
链接:https://pan.baidu.com/s/1j35LhpvV0Z5raoigXKnoJQ
提取码:zhao