OceanBase V4 中 ODP 连接池的作用是什么?服务端保活与客户端保活有何区别?
ODP 连接池用于缓存 OBServer 上的物理连接,实现物理连接复用 ,避免每次 SQL 请求都重新建连,降低连接建立开销,提升吞吐量。
服务端保活(Server Connection Keepalive):
- ODP 与 OBServer 之间的连接,由 ODP 主动维护。
- ODP 定期向空闲的服务端连接发送探测请求,避免被 OBServer 超时断开;连接异常时 ODP 自动剔除并重连。
- 配置项如
server_connect_timeout、server_check_timeout等。
客户端保活(Client Connection Keepalive):
- 应用客户端与 ODP 之间的连接,由 ODP 被动维护。
- ODP 通过 TCP Keepalive 或心跳检测客户端是否存活,超时则断开并回收资源。
- 配置项如
client_keepalive、client_idle_timeout等。
核心区别: 服务端保活由 ODP 主动探测 OBServer,保证后端连接可用;客户端保活由 ODP 检测应用端,防止僵尸连接占用资源。