TiDB: 支持 TiDB Pods 的优雅关闭行为
作者: denniskniep创建于 2026年6月1日更新于 2026年9月17日
标签kind/enhancementstatus/triage
说明
当一个TiDB集群被删除时,它进入了优雅的关闭阶段. 1)其HTTP健康端点返回故障状态-信号负载平衡器以改变交通路线. 2) 停止正常响应 COM PING 命令 3) 在配置超时后, 吊舱终止
https://docs.pingcap.com/tidb/stable/tidb-configulation-files/#graceful-wait- pre-shutdown-new-in-v50 (英语).
遵循 Keycloak 配置将会与 TiDB Graceful 关闭行为相配合 :
- ** 将 QUARKUS DATASource JDBC VALIDATE ON BORLOW 切入正版 ** 在使用 DB 池 的连接之前, 将被验证 。 如果连接在优雅的关闭阶段使用 tidb sock, 它会在验证时返回一个错误, 连接将从池中移除 。
2)** 通过PING的连接算法** 然而,标准SQL验证查询(SELECT 1,即COMQUERY命令)在这一阶段继续返回成功,使其不适合检测优雅的关闭. 我们应实施习惯连接验证机制,在Keycloak中。 只有使用 TiDB 时才启用 。 此自定义连接Validator 执行低级的ping验证(COM PING). 另一个好处是,它不是比SQL查询更"昂贵".
新连接请求已经自动路由到"健康"tidb socks.
价值建议
在TiDB吊顶重启,滚动升级,或节点再平衡期间零停机. Keycloak 的连接池生命周期与 TiDB 的优雅关闭协议一致 没有由于 TiDB 吊舱终止导致交易失败 。
目标
确保 Keycloak 通过在使用前验证连接( QUARKUS DATASOURCE JDBC VALIDATE ON BORROW) 透明地处理 TiDB 套接字宽度关闭, 并实施一个 TiDB 专用的 COM PING 连接 通过 Agroal SPI 验证器
非目标
- 说吧
讨论
无回复( N)
页:1
无回复( N)
内容来源: keycloak/keycloak