seata整合nacos启动分布式事务
nacos官网地址https://nacos.io/zh-cn/index.html
nacos的下载地址是https://seata.io/zh-cn/blog/download.html,我使用的是最新的
seata的官网地址是https://seata.io/zh-cn/docs/user/quickstart.html
具体说明可以参考官网
seata的下载地址是https://github.com/seata/seata/releases,我使用的是1.2.0
解压后文件
file.conf 文件中:主要配置 事务相关信息存储,可以选择 file 和 db 模式。
registry.conf 文件中:主要是 registry 和 config 两个对象的配置。 registry 支持 # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa config 支持:# file、nacos 、apollo、zk、consul、etcd3
首先启动nacos
然后file.config可以不修改,线上的话一般配置db,然后修改一下数据库连接就可以
我这边修改了一下registry.config,将type修改成nacos,然后我之前发现代码服务一直找不到seata,后面断点发现里面是根据serverAddr@@DEFAULT_GROUP去调用nacos API查找,所以这边我就把这两个配置修改了。
然后如果你想初始化配置到nacos可以上去 https://github.com/seata/seata/tree/1.2.0/script/config-center/nacos 下载脚本文件 nacos-config.sh,然后去 https://github.com/seata/seata/tree/1.2.0/script/config-center 下载 config.txt 文件下载到 Seata 根目录下。(也可以手动在nacos中新增,如果你只是想快速搭建,建议手动在nacos中新增)
windows下面可以使用git工具继续上传
需要注意点,如果启动失败,我看路径不对,就将下面框中的删除了
修改完之后,nacos-config.sh中的 naocs地址需要改成你nacos所在的服务器的地址,然后去运行 nacos-config.sh 脚本。就能看到下图的信息,代表成功将config.txt 文件内容配置到了 nacos 的配置中心去了。
服务名和修改名就是我修改后的值
然后来搭建项目测试一下,然后我在github找了一个案例https://github.com/seata/seata-samples,项目目录结构如下,然后我讲配置打出来
需要注意点,这个一定要在nacos中找到配置,如果你没用config.txt中新增,也可以手动在nacos中新增
使用seata注意事项:
一定要所有服务有进行接入(dba进行数据修改也是一样)
,可能就会seata服务出现脏数据,导致seata全局事务回滚失败,造成死锁。
如果接入了sentinel熔断,那个就会导致分布式事务失效