seata 参数配置
关注属性(详细描述见全属性)
server 端 | client 端 |
---|---|
registry.type | registry.type |
config.type | config.type |
#store.mode=db 需要以下配置 | service.vgroupMapping.my_test_tx_group |
store.db.driverClassName | service.default.grouplist |
store.db.url | service.disableGlobalTransaction |
store.db.user | |
store.db.password | |
#store.mode=redis 需要以下配置 | |
store.redis.host | |
store.redis.port | |
store.redis.database | |
store.redis.password | |
#store.mode=raft 需要以下配置 | |
server.raft.group | |
server.raft.server-addr | |
server.raft.snapshot-interval |
全属性
公共部分
key | desc | remark | change record |
---|---|---|---|
transport.type | socket 通信方式 | TCP、UNIX_DOMAIN_SOCKET,默认 TCP | |
transport.server | socket 通道类型 | NIO、NATIVE(根据操作系统类型和 socket 通信方式选择 KQueue 或 Epoll,注意 Windows 只支持 NIO,选择这种方式会抛出异常) | |
transport.threadFactory.bossThreadSize | Netty 通信模型 Boss group 线程数 | 默认 1 | |
transport.threadFactory.workerThreadSize | Netty 通信模型 Worker group 线程数 | 可配置线程数或选择特定线程工作模式下的线程数,线程的默认工作模式有 4 种:Auto(2*CPU 核数 + 1)、Pin(CPU 核数,适用于计算密集型任务)、BusyPin(CPU 核数 + 1,适用于计算密集型且内存比较有限的场景)、Default(2*CPU 核数,适用于 IO 密集型任务),默认值为 Default 模式 | |
transport.shutdown.wait | 服务端 Netty 线程池关闭前等待服务下线时间 | 默认 3 秒 | |
transport.serialization | client 和 server 通信编解码方式 | seata(ByteBuf)、protobuf、kryo、hessian、fst,默认 seata | |
transport.compressor | client 和 server 通信数据压缩方式 | none、gzip、zip、sevenz、bzip2、lz4、deflater、zstd,默认 none | 1.2.0 之前:gzip 1.2.0:zip、sevenz、bzip2 1.3.0:lz4 1.4.1:deflater 1.5.1:zstd |
transport.heartbeat | client 和 server 通信心跳检测开关 | 默认 true 开启 | |
transport.heartbeat | client 和 server 通信心跳检测开关 | 默认 true 开启 | |
registry.type | 注册中心类型 | 默认 file,支持 file 、nacos 、redis、eureka、zk、consul、etcd3、sofa、custom | 1.6.0 版本 Sever 端支持可同时注册到多个注册中心,以逗号分隔注册中心名 |
config.type | 配置中心类型 | 默认 file,支持 file、nacos 、apollo、zk、consul、etcd3、springcloud、custom |
server 端
key | desc | remark | change record |
---|---|---|---|
transport.enableTcServerBatchSendResponse | TC 批量发送回复消息开关 | 默认 false | 1.5.1 版本新增,建议为 true,可解决 client 批量消息时的线头阻塞问题 |
transport.rpcTcRequestTimeout | TC 二阶段下发请求超时时间 | 默认 30 秒 | 1.5.1 版本新增 |
server.undo.logSaveDays | undo 保留天数 | 默认 7 天,log_status=1(附录 3)和未正常清理的 undo | |
server.undo.logDeletePeriod | undo 清理线程间隔时间 | 默认 86400000,单位毫秒 | |
server.maxCommitRetryTimeout | 二阶段提交重试超时时长 | 单位 ms,s,m,h,d,对应毫秒,秒,分,小时,天,默认毫秒。默认值-1 表示无限重试。公式: timeout>=now-globalTransactionBeginTime,true 表示超时则不再重试(注: 达到超时时间后将不会做任何重试,有数据不一致风险,除非业务自行可校准数据,否者慎用) | |
server.maxRollbackRetryTimeout | 二阶段回滚重试超时时长 | 同 commit | |
server.recovery.committingRetryPeriod | 二阶段提交未完成状态全局事务重试提交线程间隔时间 | 默认 1000,单位毫秒 | |
server.recovery.asynCommittingRetryPeriod | 二阶段异步提交状态重试提交线程间隔时间 | 默认 1000,单位毫秒 | |
server.recovery.rollbackingRetryPeriod | 二阶段回滚状态重试回滚线程间隔时间 | 默认 1000,单位毫秒 | |
server.recovery.timeoutRetryPeriod | 超时状态检测重试线程间隔时间 | 默认 1000,单位毫秒,检测出超时将全局事务置入回滚会 话管理器 | |
server.rollbackRetryTimeoutUnlockEnable | 二阶段回滚超时后是否释放锁 | 默认 false | |
server.distributedLockExpireTime | Sever 端事务管理全局锁超时时间 | 默认 10000,单位毫秒 | 1.5.1 版本新增 |
server.server.xaerNotaRetryTimeout | 防止 XA 分支事务悬挂的重试超时时间 | 默认 60000,单位毫秒 | 1.5.1 版本新增 |
server.session.branchAsyncQueueSize | 分支事务 Session 异步删除线程池队列大小 | 默认 5000 | 1.5.1 版本新增 |
server.session.enableBranchAsyncRemove | 分支事务 Session 异步删除开关 | 默认 false | 1.5.1 版本新增 |
server.enableParallelRequestHandle | 对于批量请求消息的并行处理开关 | 默认 true | 1.5.2 版本新增 |
server.enableParallelHandleBranch | 二阶段并行下发开关 | 默认 false | 2.0.0 版本新增 |
server.raft.group | raft 存储模式下的 group,client 的事务分组对应的值要与之对应,如 service.vgroup-mapping.default_tx_group=default | default | 2.0.0 版本新增 |
server.raft.server-addr | raft 集群列表如 192.168.0.111:9091,192.168.0.112:9091,192.168.0.113:9091 | 2.0.0 版本新增 | |
server.raft.snapshot-interval | 间隔多久做一次内存快照,每做一次快照将暂停状态机,但是能提高停机恢复速度 | 默认 600 秒 | 2.0.0 版本新增 |
server.raft.apply-batch | 任务累积批次后提交至 leader | 默认 32 | 2.0.0 版本新增 |
server.raft.max-append-bufferSize | raft 日志存储缓冲区最大大小 | 默认 256K | 2.0.0 版本新增 |
server.raft.max-replicator-inflight-msgs | 在启用 pipeline 请求情况下,最大 in-flight 请求数 | 默认 256 | 2.0.0 版本新增 |
server.raft.disruptor-buffer-size | 内部 disruptor buffer 大小,如果是写入吞吐量较高场景,需要适当调高该值, | 默认 16384 | 2.0.0 版本新增 |
server.raft.election-timeout-ms | 超过多久没有 leader 的心跳开始重选举 | 默认 1000 毫秒 | 2.0.0 版本新增 |
server.raft.reporter-enabled | raft 自身的监控是否开启 | 默认 false | 2.0.0 版本新增 |
server.raft.reporter-initial-delay | 监控输出间隔 | 默认 60 秒 | 2.0.0 版本新增 |
server.raft.serialization | 序列化方式,目前仅支持 jackson | 默认 jackson | 2.0.0 版本新增 |
server.raft.compressor | raftlog 和 snapshot 的压缩方式,支持 gzip, zstd, lz4 | none | 2.0.0 版本新增 |
server.raft.sync | raftlog 同步刷盘 | true | 2.0.0 版本新增 |
store.mode | 事务会话信息存储方式 | file 本地文件(不支持 HA),db 数据库、redis、raft 支持 HA | 1.5.1 版本改用 lock 和 session 分离存储,2.0.0 开始支持 raft 模式 |
store.lock.mode | 事务锁信息存储方式 | file 本地文件(不支持 HA),db 数据库,redis(支持 HA);配置为空时,取 store.mode 配置项值,raft 模式不允许指定 | 1.5.1 版本新增,session 和 lock 可分离存储 |
store.session.mode | 事务回话信息存储方式 | file 本地文件(不支持 HA),db 数据库,redis(支持 HA);配置为空时,取 store.mode 配置项值。raft 模式不允许单独指定 | 1.5.1 版本新增,session 和 lock 可分离存储 |
store.publicKey | db 或 redis 存储密码解密公钥 | 1.4.2 版 本支持 | |
store.file.dir | file 模式文件存储文件夹名 | 默认 sessionStore | |
store.file.maxBranchSessionSize | file 模式文件存储分支 session 最大字节数 | 默认 16384(16kb),单位 byte | |
store.file.maxGlobalSessionSize | file 模式文件存储全局 session 最大字节数 | 默认 512b,单位 byte | |
store.file.fileWriteBufferCacheSize | file 模式文件存储 buffer 最大缓存大小 | 默认 16384(16kb),单位 byte,写入 session 等数据量大于该值时会抛出异常 | |
store.file.flushDiskMode | file 模式文件存储刷盘策略 | 默认 async,可选 sync | |
store.file.sessionReloadReadSize | file 模式文件存储 Server 节点重启后从备份文件中恢复的 session 或 lock key 上限个数 | 默认 100 | |
store.db.datasource | db 模式数据源类型 | dbcp、druid、hikari;无默认值,store.mode=db 时必须指定 | |
store.db.dbType | db 模式数据库类型 | mysql、oracle、db2、sqlserver、sybaee、h2、sqlite、access、postgresql、oceanbase;无默认值,store.mode=db 时必须指定。 | |
store.db.driverClassName | db 模式数据库驱动 | store.mode=db 时必须指定 | |
store.db.url | db 模式数据库 url | store.mode=db 时必须指定,在使用 mysql 作为数据源时,建议在连接参数中加上rewriteBatchedStatements=true (详细原因请阅读附录 7) | |
store.db.user | db 模式数据库账户 | store.mode=db 时必须指定 | |
store.db.password | db 模式数据库账户密码 | store.mode=db 时必须指定 | |
store.db.minConn | db 模式数据库初始连接数 |