连接池,是帮助用户在多线程,多用户并发操作数据库时,能够很好提高应用访问数据库的性能,同时也能够将数据库的连接数控制在一个较合理的范围内。连接池有效提升OLTP场景的整体性能表现。
JDBC 连接池常见框架、产品:C3P0、DBCP 、Tomcat Jdbc Pool、BoneCP、Druid、Hikaricp......
SequoiaDB的Java API也具备连接池功能,具体的类为SequoiadbDatasource。
new SequoiadbDatasource(ArrayList<> addrs, String user, String password, ConfigOptions configOpt, DatasourceOptions dsOpt);
1)Socket 与连接池的参数优化建议
ConfigOptions.connectTimeout , 默认值10000,建议设置为 500, // socket 连接超时时间(0.5秒)
ConfigOptions.maxAutoConnectRetryTime, 默认值15000,建议值为0 ,//socket连接重试超时时间
ConfigOptions.socketTimeout, 默认值为0, 建议值60000,//socket空闲超时时间(60秒)
DatasourceOptions.maxConnectionNum,默认值500,建议值为1000,//连接池最大连接数
DatasourceOptions.recheckCyclePeriod,默认值601000,建议值为24 3600 * 1000,//连接池回收周期(24小时)
2)Linux 配置优化建议
修改 Linux kernel tcp 重试参数
建议修改为net.ipv4.tcp_keepalive_time =1200,代表20分钟
建议修改为net.ipv4.tcp_keepalive_probes=5,代表发送探测包间隔为5秒
建议修改为net.ipv4.tcp_keepalive_probes=5
建议修改为net.ipv4.tcp_retries2=5,缩短tcp 重试时间