server端配置

2021/7/16 事务

# 安装

下载 seata-server-1.4.2.zip (opens new window) 服务端

下载seata-1.4.2.zip (opens new window) 参数配置文件以及sql脚本

存放server侧所需SQL和部署脚本(seata-1.4.2\script\server)

  • db: server 侧的保存模式为 db 时所需表的建表语句
  • docker-compose: server 侧通过 docker-compose 部署的脚本
  • helm: server 侧通过 Helm 部署的脚本
  • kubernetes: server 侧通过 Kubernetes 部署的脚本

# 数据库创建

根据指引的文件位置,下载SQL脚本文件。在MySql中创建数据库seata,然后再数据库中执行脚本,会生成三种表。

# 修改 registry.conf

位置:seata-server-1.4.2\conf

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos" ## 修改为nacos

  nacos {
    application = "seata-server"
    serverAddr = "192.168.0.196:10002"   ## 修改nacos服务地址
    group = "SEATA_GROUP"   ## 修改nacos服务分组
    namespace = ""  ## 修改nacos的命名空间
    cluster = "default" ## 定义集群名称
    username = ""
    password = ""
  }
}

config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"   ## 修改为nacos

  nacos {
    serverAddr = "192.168.0.196:10002"   # 修改nacos服务地址
    namespace = ""     ## 修改nacos服务分组
    group = "DEFAULT_GROUP"    ## 修改nacos的命名空间
    username = ""
    password = ""
    dataId = "seataServer.properties"
  }
}

# nacos配置模式

配置中心新建 ”seataServer.properties“

内容如下:

# 数据存储方式,db代表数据库
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://192.168.4.52:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=hd_dev
store.db.password=db1212
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000

# 事务、日志等配置
## 与客户端的保持一致
service.vgroupMapping.my_test_tx_group=default
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000

# 客户端与服务端传输方式
transport.serialization=seata
transport.compressor=none

# 关闭metrics功能,提高性能
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

修改内容说明

  • service.vgroupMapping.my_test_tx_group=default

    service.vgroupMapping.{自定义事务分组名称可以已项目命名要与file.conf.example中配置的事务分组保持一直}=default

  • service.default.grouplist=127.0.0.1:8091

    事务中间件服务的地址和端口号

  • store.mode=file 改为db同时修改下面的信息

    store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true

    store.db.user=username

    store.db.password=password

# 启动seata 服务

Server支持多种方式部署:直接部署,使用 Docker, 使用 Docker-Compose, 使用 Kubernetes, 使用 Helm.

# 直接部署

  1. RELEASE (opens new window)页面下载相应版本并解压

  2. 直接启动

在 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 运行环境 如 devtest 等, 服务启动时会使用 registry-dev.conf 这样的配置

如:

$ sh ./bin/seata-server.sh -p 8091 -h 127.0.0.1 -m file

# 容器部署

容器部署当前支持三种方式: