更新时间:2024-12-02 GMT+08:00
GaussDB(DWS)连接管理规范
规则1.1 GaussDB(DWS)集群必须配置负载均衡
违反规则的影响:
- 负载不均衡导致性能问题,严重情况会导致业务中断。
- CN故障场景,业务无法自恢复或恢复时间长。
方案建议:
- 配置ELB负载均衡,应用连接负载均衡IP。
- 配置JDBC负载均衡方式的操作参见负载均衡方式配置JDBC。
规则1.2 连接数据库完成所需操作后,必须关闭数据库连接(连接池场景除外)
违反规则的影响:
- 空闲连接过多,触发连接上限,导致新建连接报错。
- 空闲连接过多,内部占用过多资源,导致资源过载。
方案建议:
- 应用侧与数据库建连并使用完成后,手动关闭连接。
- 服务侧设置session_timeout参数,连接空闲超时自动断开。
规则1.3 开启的事务最后必须提交或回滚
违反规则的影响:
- 事务长时间不提交,持锁阻塞ALTER等操作,进而阻塞所有业务。
- 大量“idle in transaction”连接,触发连接上限,导致新建连接报错。
方案建议:
- 默认使用autocommit自动提交方式,如关闭autocommit,则必须手动提交。
- 显式start transaction开启的事务,执行完相关操作后,必须显式commit/rollback结束事务。
规则1.4 应用侧使用连接池场景,其空闲超时配置必须小于服务侧的SESSION_TIMEOUT配置
违反规则的影响:
- 连接池的连接被服务侧的空闲超时机制清理,连接复用效果下降。
方案建议:
- 将连接池的空闲超时参数设置为小于服务侧的SESSION_TIMEOUT值,或调大SESSION_TIMEOUT为大于连接池超时参数(不推荐)。
父主题: GaussDB(DWS)开发设计规范