seata参数配置

启动参数

源码

    @Parameter(names = "--help", help = true)
    private boolean help;
    @Parameter(names = {"--host", "-h"}, description = "The ip to register to registry center.", order = 1)
    private String host;
    @Parameter(names = {"--port", "-p"}, description = "The port to listen.", order = 2)
    private int port = SERVER_DEFAULT_PORT;
    @Parameter(names = {"--storeMode", "-m"}, description = "log store mode : file, db", order = 3)
    private String storeMode;
    @Parameter(names = {"--serverNode", "-n"}, description = "server node id, such as 1, 2, 3.it will be generated according to the snowflake by default", order = 4)
    private Long serverNode;
    @Parameter(names = {"--seataEnv", "-e"}, description = "The name used for multi-configuration isolation.",
        order = 5)
    private String seataEnv;

  
  

说明

参数说明
–help查看帮助
–host, -hserver端IP,如输入为-h 192.168.8.8时,在nacos中的注册地址为当前地址,可用于多网卡环境
–port, -pserver端启动及监听端口
–storeMode, -m日志存储方式,支持file, db
–serverNode, -nserverNode 用于TC集群区分节点的序号,各节点生成的分支事务ID以及各类ID是根据这个node生成的,区间是20亿,比如-n 1 节点大概生成的ID都是2开头的,-n 2 生成的ID是4开头的 ,为了避免xid重复
–seataEnv, -eregistry.conf 文件的多环境配置,例如修改配置文件为registry-dev.conf,添加-e dev启动,则会读取dev环境的配置

配置参数

通信部分

参数描述说明
transport.type传输协议类型默认TCP
transport.server传输服务类型默认NIO
transport.heartbeatclient和server通信心跳检测开关默认true开启
transport.enableClientBatchSendRequest客户端事务消息请求是否批量合并发送默认true,false单条发送
transport.threadFactory.bossThreadPrefix线程工厂Boss线程前缀默认NettyBoss
transport.threadFactory.workerThreadPrefix线程工厂Worker线程前缀默认NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix服务器执行线程前缀默认NettyServerBizHandler
transport.threadFactory.shareBossWorker是否共享boss/worker默认false
transport.threadFactory.clientSelectorThreadPrefix客户端线程选择器前缀默认NettyClientSelector
transport.threadFactory.clientSelectorThreadSize客户端线程选择器数量默认1
transport.threadFactory.clientWorkerThreadPrefix客户端worker线程前缀默认NettyClientWorkerThread
transport.threadFactory.bossThreadSizeBoss线程数量默认1
transport.threadFactory.workerThreadSizeWorker线程数量默认default
transport.shutdown.waitserver端销毁后客户端的等待时间默认3秒
transport.serializationclient和server通信编解码方式seata(ByteBuf)、protobuf、kryo、hession、fst,默认seata
transport.compressorclient和server通信数据压缩方式none、gzip,默认none

服务端

参数描述说明
service.enableDegrade是否开启降级默认false
service.disableGlobalTransaction全局事务开关默认false。false为开启,true为关闭
server.recovery.committingRetryPeriod二阶段提交未完成状态全局事务重试提交线程间隔时间默认1000,单位毫秒
server.recovery.asynCommittingRetryPeriod二阶段异步提交状态重试提交线程间隔时间默认1000,单位毫秒
server.recovery.rollbackingRetryPeriod二阶段回滚状态重试回滚线程间隔时间默认1000,单位毫秒
server.recovery.timeoutRetryPeriod超时状态检测重试线程间隔时间默认1000,单位毫秒,检测出超时将全局事务置入回滚会话管理器
server.maxCommitRetryTimeout二阶段提交重试超时时长单位ms,s,m,h,d,对应毫秒,秒,分,小时,天,默认毫秒。默认值-1表示无限重试。公式: timeout>=now-globalTransactionBeginTime,true表示超时则不再重试
server.maxRollbackRetryTimeout二阶段回滚重试超时时长同上
server.rollbackRetryTimeoutUnlockEnable是否开启回滚重试超时后释放锁资源默认false
server.undo.logSaveDaysundo日志保留天数默认7天
server.undo.logDeletePeriodundo清理线程间隔时间默认86400000(24小时),单位毫秒

客户端

参数描述说明
client.rm.asyncCommitBufferLimit异步提交缓存队列长度默认10000。 二阶段提交成功,RM异步清理undo队列
client.rm.lock.retryInterval校验或占用全局锁重试间隔默认10,单位毫秒
client.rm.lock.retryTimes校验或占用全局锁重试次数默认30ms
client.rm.lock.retryPolicyBranchRollbackOnConflict分支事务与其它全局回滚事务冲突时锁策略默认true,优先释放本地锁让回滚成功
client.rm.reportRetryCount一阶段结果上报TC重试次数默认5次
client.rm.tableMetaCheckEnable自动刷新缓存中的表结构默认false
client.rm.sqlParserTypeSQL解析器默认druid
client.rm.reportSuccessEnable是否上报一阶段成功true、false,从1.1.0版本开始,默认false.true用于保持分支事务生命周期记录完整,false可提高不少性能
client.rm.sagaBranchRegisterEnable是否开启saga分支注册默认false
client.tm.commitRetryCount一阶段全局提交结果上报TC重试次数默认1次,建议大于1
client.tm.rollbackRetryCount一阶段全局回滚结果上报TC重试次数默认1次,建议大于1
client.tm.defaultGlobalTransactionTimeout全局事务超时时间默认60000ms
client.tm.degradeCheck是否服务自动降级策略默认false ,为true时,开启自检线程.随后读取degradeCheckAllowTimes和degradeCheckPeriod,确认阈值与自检周期,都为默认值时,那么每2秒钟会进行一个begin,commit的测试,如果失败,则记录连续失败数,如果成功则清空连续失败数.连续错误由用户接口及自检线程进行累计,直到连续失败次数达到用户的阈值,则关闭Seata分布式事务,避免用户自身业务长时间不可用,反之,假如当前分布式事务关闭,那么自检线程继续按照2秒一次的自检,直到连续成功数达到用户设置的阈值,那么Seata分布式事务将恢复使用
client.tm.degradeCheckAllowTimes升降级达标阈值默认10
client.tm.degradeCheckPeriod服务自检周期默认2000,单位ms.每2秒进行一次服务自检,来决定
client.undo.dataValidation二阶段回滚镜像校验默认true开启,false关闭
client.undo.logSerializationundo序列化方式默认jackson
client.undo.onlyCareUpdateColumnupdate操作回滚时,是否只更新update字段默认true,默认seata回滚时对于原始update语句只回滚set 的update column ,false就意味着,回滚时会反向update 所有列字段,不管你原始语句是否更新过这个字段值。
client.undo.logTable自定义undo表名默认undo_log
client.log.exceptionRate日志异常输出概率默认100,目前用于undo回滚失败时异常堆栈输出,百分之一的概率输出,回滚失败基本是脏数据,无需输出堆栈占用硬盘空间
service.vgroupMapping.my_test_tx_group事务群组my_test_tx_group为分组,配置项值为TC集群名,事务分组是seata的资源逻辑,类似于服务实例。首先程序中配置了事务分组(GlobalTransactionScanner 构造方法的 txServiceGroup 参数),程序会通过用户配置的配置中心去寻找 service.vgroupMapping. 事务分组配置项,取得配置项的值就是 TC 集群的名称。拿到集群名称程序通过一定的前后缀+集群名称去构造服务名,各配置中心的服务名实现不同。拿到服务名去相应的注册中心去拉取相应服务名的服务列表,获得后端真实的 TC 服务列表。分组的含义就是映射到一套集群,所以你可以配一个分组也可以配置多个。
service.default.grouplistTC服务列表仅注册中心为file时使用,当registry.type=file时会用到,其他时候不读

存储

参数描述说明
store.mode事务会话信息存储方式file本地文件(不支持HA),db数据库
store.file.dirfile模式文件存储文件夹名默认sessionStore
store.file.maxBranchSessionSize最大分支会话大小默认16384(16kb)
store.file.maxGlobalSessionSize最大全局会话大小默认512
store.file.fileWriteBufferCacheSize文件缓冲区大小默认16384(16kb)
store.file.flushDiskMode刷新磁盘方式async、sync,异步、同步
store.file.sessionReloadReadSize会话重载读取大小100
store.db.datasourcedb模式数据源类型dbcp、druid、hikari;无默认值,store.mode=db时必须指定。
store.db.dbTypedb模式数据库类型mysql、oracle、db2、sqlserver、sybaee、h2、sqlite、access、postgresql、oceanbase;无默认值,store.mode=db时必须指定。
store.db.driverClassNamedb模式数据库驱动com.mysql.jdbc.Driver
store.db.urldb模式数据库urlstore.mode=db时必须指定,在使用mysql作为数据源时,建议在连接参数中加上rewriteBatchedStatements=true,由于seata是通过jdbc的executeBatch来批量插入全局锁的,根据MySQL官网的说明,连接参数中的rewriteBatchedStatements为true时,在执行executeBatch,并且操作类型为insert时,jdbc驱动会把对应的SQL优化成insert into () values (), ()的形式来提升批量插入的性能。
根据实际的测试,该参数设置
store.db.userdb模式数据库账户store.mode=db时必须指定
store.db.passworddb模式数据库账户密码store.mode=db时必须指定
store.db.minConndb模式数据库初始连接数默认1
store.db.maxConndb模式数据库最大连接数默认20
store.db.globalTabledb模式全局事务表名默认global_table
store.db.branchTabledb模式分支事务表名默认branch_table
store.db.queryLimitdb模式查询全局事务一次的最大条数默认100
store.db.lockTabledb模式全局锁表名默认lock_table
store.db.maxWaitdb模式获取连接时最大等待时间默认5000,单位毫秒
store.redis.hostredis模式ip默认127.0.0.1
store.redis.portredis模式端口默认6379
store.redis.maxConnredis模式最大连接数默认10
store.redis.minConnredis模式最小连接数默认1
store.redis.databaseredis模式默认库默认0
store.redis.passwordredis模式密码(无可不填)默认null
store.redis.queryLimitredis模式一次查询最大条数默认100

监控

参数描述说明
metrics.enabled是否启用Metrics默认false关闭,在False状态下,所有与Metrics相关的组件将不会被初始化,使得性能损耗最低
metrics.registryType指标注册器类型Metrics使用的指标注册器类型,默认为内置的compact(简易)实现,这个实现中的Meter仅使用有限内存计数,性能高足够满足大多数场景;目前只能设置一个指标注册器实现
metrics.exporterList指标结果Measurement数据输出器列表默认prometheus,多个输出器使用英文逗号分割,例如"prometheus,jmx",目前仅实现了对接prometheus的输出器
metrics.exporterPrometheusPortprometheus输出器Client端口号默认9898
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值