【分布式事务系列】 分布式事务框架Seata 配置

397 阅读2分钟

这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

file.conf配置详细说明

file.conf存储的是Seata服务端的配置信息,完整配置如下:

transport {
  type = "TCP"
  server = "NIO"
  ## client和server通信心跳检测开关
  heartbeat = true
  enableClientBatchSendRequest = false
  threadFactory {
    bossThreadPrefix = "NettyBoss"
    workerThreadPrefix = "NettyServerNIOWorker"
    serverExecutorThreadPrefix = "NettyServerBizHandler"
    shareBossWorker = false
    clientSelectorThreadPrefix = "NettyClientSelector"
    clientSelectorThreadSize = 1
    clientWorkerThreadPrefix = "NettyClientWorkerThread"
    bossThreadSize = 1
    workerThreadSize = "default"
  }
  shutdown {
    wait = 3
  }
  ## Client和Server通信编解码方式
  serialization = "seata"
  ## Client和Server通信数据压缩方式(none、gzip,默认为none)
  compressor = "none"
}

## 事务日志存储配置
store {
  ## 存储类型,支持file、db,默认是file
  mode = "file"
  ## 文件存储的配置属性
  file {
    dir = "sessionStore"
    maxBranchSessionSize = 16384
    maxGlobalSessionSize = 512
    fileWriteBufferCacheSize = 16384
    sessionReloadReadSize = 100
    flushDiskMode = async
  }

  ## 数据库存储的配置属性
  db {
    datasource = "druid"
    dbType = "mysql"
    driverClassName = "com.mysql.jdbc.Driver"
    url = "jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true"
    user = "mysql"
    password = "mysql"
    minConn = 5
    maxConn = 30
    ## db模式全局事务表名
    globalTable = "global_table"
    ## db模式分支事务表名
    branchTable = "branch_table"
    ## db模式全局锁表名
    lockTable = "lock_table"
    ## db模式查询全局事务一次的最大条数
    queryLimit = 100
  }
}
## server端配置
server {
  recovery {
    ## 两阶段提交未完成状态全局事务重试提交线程间隔时间
    committingRetryPeriod = 1000
    ## 两阶段异步提交状态重试提交线程间隔时间
    asynCommittingRetryPeriod = 1000
    ## 两阶段回滚状态重试回滚线程间隔时间
    rollbackingRetryPeriod = 1000
    ## 超时状态检测重试线程间隔时间
    timeoutRetryPeriod = 1000
  }
  undo {
  ## undo保留天数
    logSaveDays = 7
    ## undo 清理线程间隔时间(毫秒)
    logDeletePeriod = 86400000
  }
  enableCheckAuth = true
  maxCommitRetryTimeout = "-1"
  maxRollbackRetryTimeout = "-1"
  rollbackRetryTimeoutUnlockEnable = false
  retryDeadThreshold = 130000
}

## metrics配置
metrics {
 ## 是否启用metrics
  enabled = false
  ## 指标注册器类型
  registryType = "compact"
  ## 指标结果Measurement数据输出器列表
  exporterList = "prometheus"
  ## prometheus输出器Client的端口号
  exporterPrometheusPort = 9898
}

Seata服务端启动时会加载file.conf中的配置参数,可以修改相关参数进行优化。

从配置中心加载配置

Seata服务在启动时可以把自己注册到注册中心上,并且file.conf文件中的配置可以保存在配置中心,接着把配置信息存储到Nacos上。