Seata 服务端搭建流程
1. 相关组件下载
部署指南:https://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html
下载包: https://github.com/seata/seata/releases
建表语句:https://github.com/seata/seata/blob/1.3.0/script/server/db/mysql.sql
资源目录:https://github.com/seata/seata/tree/1.3.0/script
2.db模式搭建seata-server服务端
Server端存储模式支持三种:
- file:单机模式。全局事务会话信息内存中读写并持久化本地文件root.data,性能较高(默认)
- db:(5.7+)高可用模式。全局事务会话信息通过db共享,相应性能差些
- redis:Seate-Server1.3及以上版本支持,性能较高,存在事务信息丢失的风险,请提前配置适合当前场景的redis持久化配置
2.1 db-nacos部署seata-server服务端
- 上传seata-server-1.3.0.tar.gz和script脚本到Linux服务器
- 下载script脚本,上传到Linux服务器
- 在MYSQL数据库创建SQL脚本文件,脚本地址【https://github.com/seata/seata/blob/1.3.0/script/server/db/mysql.sql】
1.下载script脚本步骤如下:
- 打开https://github.com/seata/seata/tree/1.3.0/script 下载
- 解压seata-1.3.0.zip文件夹,找到script文件夹,也上传到Linux服务器
- 如下图,将2个文件上传到了Linux服务器
2.创建SQL脚本,完成后,如下图所示
修改相关配置文件如下
1.解压seata-server-1.3.0.tar.gz文件,添加script脚本目录文件
解压命令
[root@VM-12-6-centos software]# tar -zxvf seata-server-1.3.0.tar.gz -C /usr/local
cd到/usr/local 重名seata文件
[root@VM-12-6-centos local]# mv seata seata-1.3.0
复制script目录 到/usr/local/seata-1.3.0 目录中中
[root@VM-12-6-centos software]# cp -r script /usr/local/seata-1.3.0
2.修改file.conf文件,修改成db模式,配置mysql数据源
file.conf文件位置
/usr/local/seata-1.3.0/conf
编辑file.conf文件
[root@VM-12-6-centos conf]# vim file.conf
修改内容如下
seata-server服务端的存储模式为:db模式
配置mySQL的连接数据源
编辑完后,保存文件
按ESC键, :wq! 退出文件
3.修改registry.conf文件,配置nacos注册中心和nacos配置中心
registry.conf文件位置
/usr/local/seata-1.3.0/conf
编辑registry.conf文件
[root@VM-12-6-centos conf]# vim registry.conf
修改registry.conf文件的registry配置模式为nacos并配置nacos连接
修改registry.conf文件的config配置模式为nacos
保存修改后的文件并退出。
:wq!
修改registry.conf文件的前提条件是已经配置好nacos服务端,并建立好命名空间为seata-test。如下图
4.修改script目录下的config.txt配置文件,方便启动seata-server时自动注册到nacos服务的seata-test配置空间中
script目录下的config.txt文件的位置
/usr/local/seata-1.3.0/script/config-center
编辑config.txt文件
[root@VM-12-6-centos config-center]# vim config.txt
修改存储模式为db,修改mysql的连接数据源
- 配置事务分组,要与客户端配置的事务分组一致
红色框中的参数可以自定义
绿色框中的zzyProject 必须要等于/usr/local/seata-1.3.0/conf/registry.conf文件中cluster = “zzyProject”
保存修改后的文件并退出。
:wq!
5.运行nacos-config.sh命令,将config.txt文件注册到nacos的配置中心命令
nacos-config.sh文件位置
/usr/local/seata-1.3.0/script/config-center/nacos
将config.txt文件注册到nacos的配置中心 命令
sh nacos-config.sh -h 1xx.2xx.xx.1xx -p 8847 -g SEATA_GROUP -t 28d63442-4342-4417-9174-68c7819a21e6
参数说明:
-h: host,默认值loaclhost,nacos服务注册中心的IP地址
-p:port,默认值8848
-g:配置分组,默认值为SEATA_GROUP
-t:租户信息,对应nacos的命名空间ID字段,默认值为空
运行上述命令后,如下图所示
来到nacos注册中心,在seata-test空间中,发现上面config.txt文件中的属性信息全部配置到了nacos中。如果实际开发中用不到config.txt文件中的一些属性,完全可以在config.txt文件中删除掉
6.运行seata服务端文件seata-server.sh。seata服务端的默认端口为8091
seata服务端文件seata-server.sh的位置
/usr/local/seata-1.3.0/bin
运行seata-server.sh文件的命令
1xx.2xx.2x.1xx 指的时nacos服务注册中心的IP地址
./seata-server.sh -h 1xx.2xx.2x.1xx -p 8091
启动成功后,去naocs注册中心,可以看到seata-server服务
集群启动模式:
bin/seata-server.sh -p 8091 -n 1
bin/seata-server.sh -p 8092 -n 2
bin/seata-server.sh -p 8093 -n 3
bin/seata-server.sh -h 1xx.2xx.2x.1xx -p 8091 -m db -n 1 -e prod
其他参数说明
参数 | 全写 | 作用 | 备注 |
---|---|---|---|
-h | –host | 指定在注册中心注册的IP | 指定定时获取当前的IP,外部访问部署在云环境和容器中的server,建议指定 |
-p | –port | 指定server启动的端口 | 默认为8091 |
-m | –storeMode | 事务日志存储方式 | 支持file,db,redis,默认为file,注:redis需seata-server1.3版本以上 |
-n | –serverNode | 用于指定seata-server节点ID | 如1,2,3,…,默认为1 |
-e | –seataEnv | 指定seata-server运行环境 | 如dev,prod,test等,服务启动时会使用registry-dev.conf这样的配置 |