本文基于seata 1.3.0版本
本文主要介绍TC端的各个配置及其作用。本文将属性平铺了,这与file.conf中的属性格式不一致。
- transport.threadFactory.bossThreadSize:服务端Netty boss线程池线程(IO线程)个数,默认是1。
- transport.threadFactory.workerThreadSize:服务端Netty worker线程池线程个数,默认是CPU个数的2倍。可以设置一个整数、Auto(CPU个数2+1)、Pin(CPU个数)、BusyPin(CPU个数+1)、Default(CPU个数2)。
- transport.server:设置Netty的channel使用什么实现类,默认是NIO,可以设置的值有NIO、NATIVE。
- transport.heartbeat:设置是否启用超时检测,默认是true
- transport.threadFactory.workerThreadPrefix:设置Netty worker线程池中线程名的前缀,前缀在日志中显示,便于分析问题。
- store.mode:设置存储模式,也就是设置事务日志存储位置
- transport.type:通讯类型,是网络通讯还是同一主机进程间通讯,有两个值:TCP和unix-domain-socket。TCP表示需要通过网络通讯,后者表示使用IPC通讯,不需要经过网络。该属性和transport.server要联合使用。
- transport.enableClientBatchSendRequest:表示是否使用异步线程批量发送请求消息,默认是false,如果是true,那么seata使用一个异步线程池批量发送消息。
- transport.threadFactory.bossThreadPrefix:设置Netty boss线程池线程名的前缀。
- transport.threadFactory.serverExecutorThreadPrefix:暂时未用。
- transport.threadFactory.shareBossWorker:暂时未用。
- transport.threadFactory.clientSelectorThreadPrefix:RM、TM端使用,设置Netty线程池线程名的前缀。
- transport.threadFactory.clientSelectorThreadSize:RM、TM端使用,设置Netty线程池线程个数。
- transport.threadFactory.clientWorkerThreadPrefix:暂时未用。
- transport.shutdown.wait:关闭服务端的Netty时,暂停一段时间后再关闭,默认是3s。
- transport.serialization:设置发送信息的序列化格式,默认是SEATA,还可以是FST、KRYO、PROTOBUF。
- transport.compressor:设置发送消息的压缩格式,默认是不压缩,可选参数有:NONE、GZIP、ZIP、SEVENZ、BZIP2、LZ4。非心跳消息才会被压缩。
- store.mode:设置事务日志的存储位置,可以选择数据库、redis或者文件存储。以store开头的属性只在服务端有效。可选值有db、redis、file。
- store.file.dir:当设置store.mode=file时,以store.file开头的参数才会生效。该属性用于设置事务日志文件的保存位置,设置的是目录名,不是文件名。
- store.file.maxBranchSessionSize:将BranchSession对象存储到文件时,如果存储的字节数超过了该参数值,那么会使用GZIP压缩,如果压缩后还超过该值,则抛出异常。
- store.file.maxGlobalSessionSize:将GlobalSession对象存储到文件时,如果存储的字节数超过了该参数值,抛出异常。
- store.file.fileWriteBufferCacheSize:事务日志写入文件前,要先将日志写入缓存,然后由缓存写入文件,缓存使用的是直接内存,该参数值用于设置直接内存的大小。
- store.file.sessionReloadReadSize:
- store.file.flushDiskMode:设置刷盘格式,日志写入文件后,需要强制刷盘,才能真正写入磁盘,该参数用于设置异步刷盘还是同步输盘,异步刷盘是使用异步线程刷盘。可选参数有:SYNC_MODEL、ASYNC_MODEL。
- store.db.datasource:当设置store.mode=db时,以store.db开头的参数才会生效。该参数用于设置连接数据库的数据源类型。可选参数有:dbcp、druid、hikari。
- store.db.dbType:用于设置数据库类型。可选参数有:mysql、oracle、postgresql、h2、/oceanbase。
- store.db.driverClassName:设置数据库的驱动类的全限定名。
- store.db.url:数据库连接
- store.db.user:连接数据库的用户名
- store.db.password:连接数据库的密码
- store.db.minConn:最小连接数
- store.db.maxConn:最大连接数
- store.db.globalTable:当修改全局事务对象GlobalSession时,seata会将这些修改以事务日志的形式记录在数据库中,该参数用于设置存储这些日志的表名,默认是global_table。
- store.db.branchTable:当修改分支事务对象BranchSession时,seata会将这些修改以事务日志的形式记录在数据库中,该参数用于设置存储这些日志的表名,默认是branch_table。
- store.db.lockTable:分支事务会对将要访问的业务数据加锁,防止其他事务修改数据,这些锁信息都存储在数据库中,该参数用于设置存储锁数据的表名。默认是lock_table。
- store.db.queryLimit:seata可以根据条件查询GlobalSession,该参数用于限制数据库返回符合条件的GlobalSession的最大记录数,默认是100。
- server.recovery.committingRetryPeriod:下面以server开头的属性都只在服务端生效。
- server.recovery.asynCommittingRetryPeriod:DefaultCoodinator初始化时,会创建异步提交线程池,该参数用于设置异步提交线程池的线程启动间隔。在AT模式,全局事务提交都是由异步提交线程池完成的。默认启动间隔1000ms。
- server.recovery.rollbackingRetryPeriod:DefaultCoodinator初始化时,会创建重试回滚线程池,该参数用于设置重试回滚线程池的线程启动间隔。当通知分支事务回滚失败后,seata会继续通过重试回滚线程通知分支事务回滚。默认启动间隔1000ms。
- server.recovery.timeoutRetryPeriod:DefaultCoodinator初始化时,会创建超时检测线程池,该参数用于设置超时检测线程池的线程启动间隔。超时检测线程池用于检测超时事务。如果事务超时了,则将全局事务对象加入到重试回滚管理器中。默认启动间隔1000ms。
- server.undo.logSaveDays:TC每天会通知RM将一段时间以前的回滚日志删除,默认是7天以前,可以使用logSaveDays设置其他的值。
- server.undo.logDeletePeriod:该参数与server.undo.logSaveDays联合使用,该参数用于设置TC的通知频率,默认是一天通知一次。
- server.enableCheckAuth:设置TM和RM注册时,是否校验他们的权限。默认是true。
- server.maxCommitRetryTimeout:TC通知事务提交,如果超过该参数指定的时间事务仍未提交成功,则TC之后会跳过该事务,不会在尝试通知。默认100ms。在AT模式下,该参数不生效。
- server.maxRollbackRetryTimeout:TC通知事务回滚,如果超过该参数指定的时间事务仍未回滚成功,则TC之后会跳过该事务,不会在尝试通知。默认100ms。
- server.rollbackRetryTimeoutUnlockEnable:该参数与server.maxRollbackRetryTimeout联合使用。当TC通知事务回滚超过时间限制后仍未回滚成功的,通过该参数可以设置在超时之后是否解除分支事务锁。如果该参数为true,则解除。默认是true。
- metrics.enabled:表示是否启动指标统计模块,默认是false。
- metrics.registryType:seata的统计指标需要存放到注册中心,该参数用于设置注册中心类型,默认是compact,该类型是seata自身提供的实现,只在内存中存储统计指标。