Seata Server安装
1.Seata Server简单部署
修改conf/registry.conf文件,seata的注册中心为nacos:
注意:确保client与server的注册处于同一个namespace和group,不然会找不到服务。
Server端存储模式(store.mode)支持三种:
- file:单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高(默认)
- DB:高可用模式,全局事务会话信息通过DB共享,相对性能差一些
- redis:Seata-Server1.3及以上版本支持,性能较高,存在事务信息丢失风险,需要配合实际场景使用。
修改conf/file.conf文件,修改seata的存储模式,把seata的默认存储模式修改为数据库DB,同时需要配置JDBC
我们使用db模式的时候,需要事先创建库和表,表分别是global_table(全局事务会话表),branch_table(分支事务会话表),lock_table(锁数据表)
建表语句地址:https://github.com/seata/seata/blob/develop/script/server/db/mysql.sql
启动:sh seata-server.sh
此时在nacos可以看到对应的服务
2.Seata Server高可用部署
Seata支持注册服务到Nacos,以及支持Seata所有配置放到Nacos配置中心,在Nacos中统一维护;高可用模式下就需要配合Nacos来完成
之前步骤已经将seata注册到nacos中,接下来我们需要将seata的配置文件也放入nacos配置中心中
我们需要修改conf/registry.conf文件,seata的配置中心为nacos:
我们在nacos中创建dataId为seataServer.properties的配置文件
文件内容可以参考官网:https://github.com/seata/seata/tree/develop/script/config-center,具体修改内容:
# 事务分组,用于防护机房停电,来启用备用机房,或者异地机房,容错机制,当然如果Seata-Server配置了对应的事务分组,Client也需要配置相同的事务分组。service.vgroupMapping.可以自定义=default,default这里必须等于registry.config中的cluster="default"(当然可以更改 ) service.vgroupMapping.mygroup=default # 存储模式修改为db,并修改对应的jdbc store.mode=db store.db.datasource=druid store.db.dbType=mysql store.db.driverClassName=com.mysql.jdbc.Driver store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true store.db.user=root store.db.password=root store.db.minConn=5 store.db.maxConn=30
此时重启seata服务即可。
以上这种方式是1.4.2后才支持的,之前的版本需要手动执行脚本,参考:https://seata.io/zh-cn/docs/user/configuration/nacos.html
3.Seata Server集群部署
如果想要集群方式部署seata只要修改seata对应的端口即可
在 Linux/Mac 下
$ sh ./bin/seata-server.sh
在 Windows 下
bin\seata-server.bat
支持的启动参数
参数 全写 作用 备注 -h --host 指定在注册中心注册的 IP 不指定时获取当前的 IP,外部访问部署在云环境和容器中的 server 建议指定 -p --port 指定 server 启动的端口 默认为 8091 -m --storeMode 事务日志存储方式 支持 file
,db
,redis
,默认为file
注:redis需seata-server 1.3版本及以上-n --serverNode 用于指定seata-server节点ID 如 1
,2
,3
..., 默认为1
-e --seataEnv 指定 seata-server 运行环境 如 dev
,test
等, 服务启动时会使用registry-dev.conf
这样的配置