Seata服务集成nacos,下面主要讲解window环境下Seata采用nacos完成配置和服务注册。
一.前提条件
Seata服务端jar包,本demo采用的是seata-server-1.4.0;(官网地址:seata-1.4.0)
nacos服务端采用nacos-1.1.4;(官网地址:nacos,这里不做nacos的讲解,用本地已经搭建好的服务)
需要python环境,window下需要安装python(便于seata推送配置到nacos,官网地址:python-3.9.0);
二. Seata配置修改
Seata包下载后解压,找到对应的conf文件夹,如下图
本demo咱们采用db的模式,所以咱们可以删除掉file.conf,打开文件README-zh.md,可以找到对应配置的地址:
seata服务端需要的sql脚本地址:服务端mysql建表,本demo采用mysql数据库
需要的config.txt配置文件地址:config地址,并选择nacos文件夹中的nacos-config.py,并把两个文件拷贝到seata中的conf文件夹中,如下图:
接下来先创建db,打开上述的地址拷贝sql,并在mysql新建数据库seata执行sql,如下图:
数据库表建好后,剩下就是修改配置文件,第一个需要修改的配置文件registry.conf,本demo采用nacos(采用nacos,只需要保留nacos配置就可以),修改后的文件是:
注意:其中的namespace是nacos里面需要优先配置好的命名空间(后面推送配置到nacos需要用到)
第二个需要修改的config.txt文件:修改的文件如下(重要的修改用红色标注):
三.Seata配置手动推送到nacos
Seata服务端启动不会主动推送config.txt配置到nacos,需要手动进行推送,本地是window系统,需要python脚本进行推送.
进入命令行,切换到Seata服务的conf目录,并执行如下命令:
python nacos-config.py nacos的ip地址:端口 df2011b0-ed94-4fd2-9a33-baa6f97f5af5
如下:出现init nacos config finished, please start seata-server. 表示推送成功:如下图
推送成功后,查询nacos中的配置如下:
可能出现的问题:
1.官网这里给的命令是 python nacos-config.py nacosAddr,会有如下错误:
python nacos-config.py nacosAddr, 需要后面新增一个命名空间的uuid
2.执行正确命令,可能有如下错误。
FileNotFoundError: [Errno 2] No such file or directory: '../config.txt',找不到配置文件。因为nacos-config.py和config.txt在同目录,所以找不到,“../config.txt”需要改为“./config.txt”;
四.启动Seata服务
启动Seata服务,Window服务可以直接点击根目录bin下的seata-server.bat,或者进入到命令行,启动seata-server.bat,推荐使用第二种(方便闪退后查看错误信息);