# jdbc配置文件格式

jdbc配置文件文件可能位于工作目录下conf/jdbc.conf表示系统默认数据库的配置。也可能位于元数据sysdata/data/sources目录下。

jdbc配置文件是一个json格式,以Mysql为例:

{
  "name": "default",
  "user": "yourusername",
  "password": "yourpassword",
  "driver": "com.mysql.cj.jdbc.Driver",
  "url": "jdbc:mysql://127.0.0.1/succbi?useUnicode=true&characterEncoding=utf8&allowLoadLocalInfile=true&zeroDateTimeBehavior=convertToNull&useSSL=false",
  "minPoolSize": 3,
  "poolSize": 20,
  "waitTime":10,
  "testConnectionOnCheckout": false,
  "testConnectionPeriod": 1800,
  "defaultSchema": "test",
  "enableDatabaseStatistics":false
}

参数介绍:

  • minPoolSize: 连接池最小连接数,默认3,从高峰转低峰时,连接池中过多的连接将会释放,但不会低于最小连接数。
  • poolSize: 连接池最大连接数,默认20。
  • waitTime: 最大等待时间(单位:秒),默认10秒,当连接池满,获取连接会等待,直到有连接可用,如果超过最大等待时间,会抛出超时异常。
  • testConnectionOnCheckout: 从连接池获取连接时,测试连接的有效性,默认为false。当网络不稳定时,需要设置为true。
  • testConnectionPeriod: 连接有效性的测试周期(单位:秒),默认为半小时。当testConnectionOnCheckout=true,此参数不起作用。
  • defaultSchema: 设置数据库用户登录后访问的schema,一般不需要设置此参数,当数据库用户的默认schema和期望的schema不一致时,需要设置此参数。
  • enableDatabaseStatistics:是否定时统计数据库的运行状态信息,默认为false。设置为true时还需要同时设置databaseStatisticsSchedule,系统将定时统计数据库的存储空间状态、表状态等信息。
  • databaseStatisticsSchedule:执行定时统计数据库运行状态信息的计划任务id。当enableDatabaseStatistics=true时,需要设置此参数。
  • enableMonitorMetadata:默认false,表示是否启用监听物理表的表结构变化
  • monitorMetadataSchedule:监听元数据变化所使用的计划
  • monitorIgnoreSchemas:忽略哪些schema,字符串数组,如["sys*", "db*"] 表示忽略sys和db开头的schema
  • monitorIgnoreTables:忽略哪些表,字符串数组,如["tmp*", "sys*"] 表示忽略sys和tmp开头的表
  • connectTimeout 连接池创建连接的超时参数,此参数用于避免创建连接超长等待造成的系统死锁,单位毫秒
  • socketTimeout 网络超时参数,此参数用于由于网络原因导致数据库查询的socket通信超时,防止系统堵塞;需要注意的是此参数需要设置的足够长,如果低于一些慢查询的执行时间,也会出现超时异常,单位毫秒
  • leakDetectionThreshold 设置一个连接的活动时间,如果这个值是一个正整数(秒),且连接的活动时间超过了这个时间,则这个连接将会被认为疑是连接漏洞,并打印日志。通常和logConnectionTrace参数一起,用来找到那些没有"关闭"的连接。默认0,表示连接的活动时间不会超时。
  • logConnectionTrace 设置为true,将记录从连接池获取连接时的调用堆栈,通常和leakDetectionThreshold参数一起,用来找到那些没有"关闭"的连接,默认false。
  • maxIdleTime 设置连接的最大空闲时间,单位秒,默认半小时。用于当峰值过去后,删除并关闭一些长时间不使用的连接;也用于网络防火墙设置了TCP超时时间的场景,maxIdleTime要设置小于这个超时时间。
  • maxLifeTime 设置连接的最大生存时间,单位秒,默认两小时。用于保持连接池的新鲜度;也用于有些数据库的连接有时效性导致连接不可用问题,比如mysql的连接就有默认8小时的有效时间。
  • enableImage 启用镜像库功能,镜像库是数据库本身的能力,系统可以利用数据库的镜像能力做到读写分离和分散查询压力,增加系统的承压能力。
  • images 启用镜像库功能后,可以配置镜像库的地址,是一个json数组,每个元素是一个jdbc url字符串,每个镜像库的账号密码需要和主库一致。
  • imageDelay 设置一个镜像库延迟读取时间,用于修改模型数据后,是否延迟读取镜像库数据。单位秒,默认0,表示不延迟,可以直接查镜像库。比如:期望修改后5分钟内,只查主库,则设置为300。
  • enableCheckState 是否周期检查连接池状态,默认为true。集群环境下某个数据源只有某个集群节点才会使用的时候(比如前置机)可以设置为false,避免集群所有节点定期尝试连接。
是否有帮助?
0条评论
评论