目录
本系列文章基于(seata1.3.0版本)。
seata官方地址:http://seata.io/zh-cn/index.html
seata官方文档地址:http://seata.io/zh-cn/docs/overview/what-is-seata.html
安装包下载地址:http://seata.io/zh-cn/blog/download.html
github地址:https://github.com/seata/seata
官方部署指南:http://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html
部署所需脚本:https://github.com/seata/seata/tree/1.3.0/script
Seata分TC、TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成。
Server端安装:
下载安装包和部署脚本
第一步先下载安装包和部署所需脚本,脚本分三个部分:
下载后的安装包内有readme文件:
# 脚本说明
## [client](https://github.com/seata/seata/tree/develop/script/client)
> 存放用于客户端的配置和SQL
- at: AT模式下的 `undo_log` 建表语句
- conf: 客户端的配置文件
- saga: SAGA 模式下所需表的建表语句
- spring: SpringBoot 应用支持的配置文件
## [server](https://github.com/seata/seata/tree/develop/script/server)
> 存放server侧所需SQL和部署脚本
- db: server 侧的保存模式为 `db` 时所需表的建表语句
- docker-compose: server 侧通过 docker-compose 部署的脚本
- helm: server 侧通过 Helm 部署的脚本
- kubernetes: server 侧通过 Kubernetes 部署的脚本
## [config-center](https://github.com/seata/seata/tree/develop/script/config-center)
> 用于存放各种配置中心的初始化脚本,执行时都会读取 `config.txt`配置文件,并写入配置中心
- nacos: 用于向 Nacos 中添加配置
- zk: 用于向 Zookeeper 中添加配置,脚本依赖 Zookeeper 的相关脚本,需要手动下载;ZooKeeper相关的配置可以写在 `zk-params.txt` 中,也可以在执行的时候输入
- apollo: 向 Apollo 中添加配置,Apollo 的地址端口等可以写在 `apollo-params.txt`,也可以在执行的时候输入
- etcd3: 用于向 Etcd3 中添加配置
- consul: 用于向 consul 中添加配置
我的部署环境为win10,server端采用db模式,配置中心为nacos。
修改配置文件
file.conf和registry.conf使用一个即可。file.conf为不使用配置中心,registry.conf为使用配置中心。在我本机上启动seata服务端时,我把file.conf重命名为了file.conf.txt.
修改file.conf
如果不想依赖依赖于nacos或者是zk、redis、springcloud的eureka的方式,比如单机做实验,可以修改file.conf文件。如果是生产环境,建议使用registry.conf。
这里对服务端sql脚本中的三张表名做出了修改,加了一些前缀。
修改registry.conf
注册中心改为nacos,并修改nacos响应配置:
向nacos中心写入配置
将部署脚本中的config.txt拷贝到seata安装路径中的conf目录下,并作出修改:
在向nacos导入配置时,seata官方提供了两个脚本:
nacos-config.py需要Python环境,在我机子上测试时,Python2.7执行该文件报错,http.client模块找不到,后改为Python3.7执行才成功。
网上有的文章,在执行该命令时,没有指定namespace,那么配置会到public命名空间下,这样不便于管理,在使用seata1.3的nacos-config.py时,可以先进行一个修改:
执行命令如下:python nacos-config.py nacos地址 命名空间
在nacos中查看,可以看到配置已导入成功:
启动
将数据库驱动jar包放到seata安装目录到的lib下,然后执行命令:
seata-server.bat -n 1
seata-server.bat -n 2 -p 8902
我这里启动了两个seata服务端,可以启动一个高可用的目的。
在nacos中可以看到有两个服务:
service.vgroupMapping.
service.vgroupMapping.标题我标记为了红色,以显示出其重要性。
在config.txt中有以下配置:
这个配置项是一个很关键,也很容易出错的配置。 service.vgroupMapping.后边的my_test_tx_group是一个事务组,这个会在seata的Client端用到。