JDBC常用参数默认值优化
背景:jdbc参数繁多,业务URL中经常要配置10+的参数,给使用人员带来了理解的挑战,同时增加使用和维护的难度。
方案:修改部分常用参数的默认值,简化URL配置。
| 参数名 | 修改前 | 修改后 | 说明 |
|---|---|---|---|
isConnectionLevel | 当建链协议检测到loadbalance协议和prepare(useCursorFetch或者useServerPstmts=true)同时被打开,则自动设置该参数为true | ||
cachePrepStmts | false | true | 使用了服务端prepare时自动使用缓存 |
prepStmtCacheSize | 25 | 2000 | |
prepStmtCacheSqlLimit | 256 | 2000 | |
useSSL | true | false | |
characterEncoding | null | utf8 | |
connectTimeout | 10000 | ||
useCursorFetch | false | true | |
queryTimeoutKillsConnection | false | true | |
dumpListSize | 0 | 10 | 生产建议关闭,配置为0 |
dumpInfoLength | 1000 |
Redhat8.5系统的Python2.7安装方法
url=jdbc:mysql:loadbalance://192.168.100.7:7788,192.168.100.8:7788,192.168.100.9:7788,192.168.100.10:7788/nlsdb?useCursorFetch=true&useSSL=false&cachePrepStmts=true&prepStmtCacheSqlLimit=20480&prepStmtCacheSize=2000&characterEncoding=utf8&queryTimeoutKillsConnection=true&isConnectionLevel=true&connectTimeout=60000&socketTimeout=60000&dumpListSize=10&dumpInfoLength=10000&shadowThreadSwitch=False
优化之后的URL配置:
url=jdbc:mysql:loadbalance://192.168.100.7:7788,192.168.100.8:7788,192.168.100.9:7788,192.168.100.10:7788/nlsdb?prepStmtCacheSqlLimit=20480&socketTimeout=60000
JDBC高级功能
JDBC loadbalance支持将计算节点按分组优先级
url=jdbc:mysql:loadbalance://minconnectionproxys=1&proxygroups=2&proxygroup1=192.168.100.7:7788,192.168.100.8:7788&proxygroup2=192.168.100.9:7788,192.168.100.10:7788/nlsdb?prepStmtCacheSqlLimit=20480&socketTimeout=60000
JDBC增加连接自管理能力、增加黑名单管理能力
增加“连接分组自管理及黑名单功能”,主要实现思路:在loadbalance+isConnectionLevle=true时,对每个proxy的IP+port建立管理组,同时增加一个影子连接,影子连接定期心跳,心跳异常则杀死全组的链接并加入黑名单,黑名单定时探测,链路正常后再踢出黑名单。
| 参数名 | 含义 | 取值范围 | 默认值 |
|---|---|---|---|
shadowThreadSwith | 是否开启连接自检测功能 | true/false | false |
intervalTime | 每个影子链路发送“select 1”心跳的时间间隔,单位:ms | 2000 | |
blackTaskTime | 黑名单的检测周期,单位:秒。 每满一个周期会将黑名单中的条目尝试判白,白则出池激活,否则继续等下个周期 | 20 | |
errorCount | 影子连接进行心跳时,判断为异常的失败次数。达到次数即判定为异常,进入黑名单 | 1 |
本页导航




