seata 参数配置 1.0.0 版本
查看 0.9.0.1 之前版本变更记录
20191221: 增加seata.enabled、client.report.success.enable、
transport.enable-client-batch-send-request、client.log.exceptionRate
关注属性(详细描述见全属性)
server 端 | client 端 |
---|---|
registry.type | registry.type |
config.type | config.type |
store.mode | service.vgroup_mapping.my_test_tx_group |
store.db.driver-class-name | service.default.grouplist |
store.db.url | service.disableGlobalTransaction |
store.db.user | client.support.spring.datasource.autoproxy |
store.db.password |
全属性
公共部分
key | desc | remark |
---|---|---|
transport.serialization | client 和 server 通信编解码方式 | seata(ByteBuf)、protobuf、kryo、hessian,默认 seata |
transport.compressor | client 和 server 通信数据压缩方式 | none、gzip,默认 none |
transport.heartbeat | client 和 server 通信心跳检测开关 | 默认 true 开启 |
registry.type | 注册中心类型 | 默认 file,支持 file 、nacos 、eureka、redis、zk、consul、etcd3、sofa、custom |
config.type | 配置中心类型 | 默认 file,支持 file、nacos 、apollo、zk、consul、etcd3、custom |
server 端
key | desc | remark |
---|---|---|
server.undo.log.save.days | undo 保留天数 | 默认 7 天,log_status=1(附录 3)和未正常清理的 undo |
server.undo.log.delete.period | undo 清理线程间隔时间 | 默认 86400000,单位毫秒 |
server.max.commit.retry.timeout | 二阶段提交重试超时时长 | 单位 ms,s,m,h,d,对应毫秒,秒,分,小时,天,默认毫秒。默认值-1 表示无限重试。公式: timeout>=now-globalTransactionBeginTime,true 表示超时则不再重试 |
server.max.rollback.retry.timeout | 二阶段回滚重试超时时长 | 同 commit |
server.recovery.committing-retry-period | 二阶段提交未完成状态全局事务重试提交线程间隔时间 | 默认 1000,单位毫秒 |
server.recovery.asyn-committing-retry-period | 二阶段异步提交状态重试提交线程间隔 时间 | 默认 1000,单位毫秒 |
server.recovery.rollbacking-retry-period | 二阶段回滚状态重试回滚线程间隔时间 | 默认 1000,单位毫秒 |
server.recovery.timeout-retry-period | 超时状态检测重试线程间隔时间 | 默认 1000,单位毫秒,检测出超时将全局事务置入回滚会话管理器 |
store.mode | 事务会话信息存储方式 | file 本地文件(不支持 HA),db 数据库(支持 HA) |
store.file.dir | file 模式文件存储文件夹名 | 默认 sessionStore |
store.db.datasource | db 模式数据源类型 | 默认 dbcp |
store.db.db-type | db 模式数据库类型 | 默认 mysql |
store.db.driver-class-name | db 模式数据库驱动 | 默认 com.mysql.jdbc.Driver |
store.db.url | db 模式数据库 url | 默认 jdbc:mysql://127.0.0.1:3306/seata |
store.db.user | db 模式数据库账户 | 默认 mysql |
store.db.password | db 模式数据库账户密码 | 默认 mysql |
store.db.min-conn | db 模式数据库初始连接数 | 默认 1 |
store.db.max-conn | db 模式数据库最大连接数 | 默认 3 |
store.db.global.table | db 模式全局事务表名 | 默认 global_table |
store.db.branch.table | db 模式分支事务表名 | 默认 branch_table |
store.db.lock-table | db 模式全局锁表名 | 默认 lock_table |
store.db.query-limit | db 模式查询全局事务一次的最大条数 | 默认 100 |
metrics.enabled | 是否启用 Metrics | 默认 false 关闭,在 False 状态下,所有与 Metrics 相关的组件将不会被初始化,使得性能损耗最低 |
metrics.registry-type | 指标注册器类型 | Metrics 使用的指标注册器类型,默认为内置的 compact(简易)实现,这个实现中的 Meter 仅使用有限内存计数,性能高足够满足大多数场景;目前只能设置一个指标注册器实现 |
metrics.exporter-list | 指标结果 Measurement 数据输出器列表 | 默认 prometheus,多个输出器使用英文逗号分割,例如"prometheus,jmx",目前仅实现了对接 prometheus 的输出器 |
metrics.exporter-prometheus-port | prometheus 输出器 Client 端口号 | 默认 9898 |
client 端
key | desc | remark |
---|---|---|
seata.enabled | 是否开启 spring-boot 自动装配 | true、false,默认 true(附录 4) |
client.report.success.enable | 是否上报一阶段成功 | true、false,默认 true 用于保持分支事务生命周期记录完整,false 可提高不少性能 |
transport.enable-client-batch-send-request | 客户端事务消息请求是否批量合并发送 | 默认 true,false 单条发送 |
client.log.exceptionRate | 日志异常输出概率 | 默认 100,目前用于 undo 回滚失败时异常堆栈输出,百分之一的概率输出,回滚失败基本是脏数据,无需输出堆栈占用硬盘空间 |
service.vgroup_mapping.my_test_tx_group | 事务群组(附录 1) | my_test_tx_group 为分组,配置项值为 TC 集群名 |
service.default.grouplist | TC 服务列表(附录 2) | 仅注册中心为 file 时使用 |
service.disableGlobalTransaction | 全局事务开关 | 默认 false。false 为开启,true 为关闭 |
service.enableDegrade | 降级开关(待实现) | 默认 false。业务侧根据连续错误数自动降级不走 seata 事务 |
client.rm.async.commit.buffer.limit | 异步提交缓存队列长度 | 默认 10000。 二阶段提交成功,RM 异步清理 undo 队列 |
client.rm.lock.retry.internal | 校验或占用全局锁重试间隔 | 默认 10,单位毫秒 |
client.rm.lock.retry.times | 校验或占用全局锁重试次数 | 默认 30 |
client.rm.lock.retry.policy.branch-rollback-on-conflict | 分支事务与其它全局回滚事务冲突时锁策略 | 默认 true,优先释放本地锁让回滚成功 |
client.rm.report.retry.count | 一阶段结果上报 TC 重试次数 | 默认 5 次 |
client.rm.table.meta.check.enable | 自动刷新缓存中的表结构 | 默认 false |
client.tm.commit.retry.count | 一阶段全局提交结果上报 TC 重试次数 | 默认 1 次,建议大于 1 |
client.tm.rollback.retry.count | 一阶段全局回滚结果上报 TC 重试次数 | 默认 1 次,建议大于 1 |
client.undo.data.validation | 二阶段回滚镜像校验 | 默认 true 开启,false 关闭 |
client.undo.log.serialization | undo 序列化方式 | 默认 jackson |
client.undo.log.table | 自定义 undo 表名 | 默认 undo_log |
client.support.spring.datasource.autoproxy | 数据源自动代理开关 | 默认 false 关闭 |
未使用
key | desc | remark |
---|---|---|
lock.mode | 锁存储方式 | local、remote |
lock.local | ||
lock.remote |
参数同步到配置中心使用 demo
Nacos
shell:
sh $\{SEATAPATH}/script/config-center/nacos/nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 5a3c7d6c-f497-4d68-a71a-2e5e3340b3ca
参数说明:
-h: host,默认值 localhost
-p: port,默认值 8848
-g: 配置分组,默认值为 'SEATA_GROUP'
-t: 租户信息,对应 Nacos 的命名空间 ID 字段, 默认值为空 ''
Apollo
sh $\{SEATAPATH}/script/config-center/apollo/apollo-config.sh -h localhost -p 8070 -e DEV -a seata-server -c default -n application -d apollo -r apollo -t 3aa026fc8435d0fc4505b345b8fa4578fb646a2c
参数说明:
-h: host,默认值 localhost
-p: port,默认值 8070
-e: 所管理的配置环境,默认值 DEV
-a: Namespace 所属的 AppId,默认值 seata-server
-c: 所管理的配置集群名, 一般情况下传入 default 即可。如果是特殊集群,传入相应集群的名称即可,默认值 default
-n: 所管理的 Namespace 的名称,如果是非 properties 格式,需要加上后缀名,如 sample.yml,默认值 application
-d: item 的创建人,格式为域账号,也就是 sso 系统的 User ID
-r: 发布人,域账号,注意:如果 ApolloConfigDB.ServerConfig 中的 namespace.lock.switch 设置为 true 的话(默认是 false),那么该环境不允许发布人和编辑人为同一人。所以如果编辑人是 zhangsan,发布人就不能再是 zhangsan。
-t: Apollo 管理员在 http://{portal_address}/open/manage.html 创建第三方应用,创建之前最好先查询此 AppId 是否已经创建。创建成功之后会生成一个 token
以上参数说明详情请看:
https://github.com/ctripcorp/apollo/wiki/Apollo%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0
Consul
sh $\{SEATAPATH}/script/config-center/consul/consul-config.sh -h localhost -p 8500
参数说明:
-h: host,默认值 localhost
-p: port,默认值 8500
Etcd3
sh $\{SEATAPATH}/script/config-center/etcd3/etcd3-config.sh -h localhost -p 2379
参数说明:
-h: host,默认值 localhost
-p: port,默认值 2379
python:
python $\{SEATAPATH}/script/config-center/nacos/nacos-config.py localhost:8848