NEXT-11 Core 探针与连接池争用
先诊断失败阶段和数据库阻塞关系,再验证有界探针池隔离
本项承接持续流式验证的128路未就绪拒绝。目标是分清依赖故障与连接池排队,验证探针隔离是否有效;不调整计价、钱包事务、行锁、业务连接池大小或1秒探针超时。
执行顺序
- 冻结只增加诊断的Core制品,保留业务池与请求处理行为。在用户指定的oceanway服务器,使用原128并发、120秒SSE、300秒稳态、两合成账户重新观察。
- 结合探针阶段、业务池统计和PG阻塞关系判断原因。没有发生失败时,也保留成功探针的等待证据;一次成功不覆盖前几轮间歇失败。
- 根据证据验证默认关闭、每Core最多1连接的专用探针池。领域写入继续使用原业务池;只有同参数负载与逐笔账务全部通过,才接受本次限定结果。
诊断证据
显式开启后,每次已鉴权的内部探针记录固定实例标签、UTC时间、Redis/数据库Ping/表结构/模型阶段耗时、失败阶段、context状态及业务池起止统计。日志不包含请求、客户ID、Key、DSN、原始SQL或原始错误文本。有界异步队列避免日志写入拖延探针,丢弃数量另行记录。
池的WaitCount/WaitDuration增量是整个池在该时间窗口的累计量,不能当作该探针独自等待的时间。数据库每250毫秒采集本次测试库的PID、等待类型、阻塞PID和事务/查询年龄,固定查询分类不等于正在锁等待,必须结合状态解读。
诊断版本机检查已通过:全仓race/vet/build、来源核验、SQLite与真实PG缺失/失效负例、真实Redis故障恢复,以及先消耗250毫秒依赖预算再占满业务池的1秒总时限测试。独立审查验证日志脱敏与阻塞写入不拖慢探针;PG采样通过真实通用锁等待测试。
当前结果
诊断对照已完成:128路配置、300秒稳态,424次成功(384流式、40普通)、0错误;活跃流P50/峰值128,98%样本达到目标90%。两个账户各212次请求,精确扣款2120/1060 microcredits,预占为0、完整账本与归档一致。770个探针事件无失败、无日志丢弃,测试环境已清理。
其中一个成功探针开始、结束时业务池均为10连接全部占用,检查耗时约285毫秒;该窗口整池发生43次等待、累计约1.61秒。它支持存在共享池争用,但不能单独证明前几轮所有503的唯一原因。本轮未复现间歇拒绝,不能把诊断功能本身称为修复。
专用探针池已完成真实PG/Redis、全部原10个业务连接占用、探针自身连接占用、真实DDL阻塞、版本/校验和/表/模型失效及关闭清理负例。全仓race/vet/build、来源核验和独立冻结审查通过。
oceanway隔离对照也已通过:相同128路配置、300秒稳态,424次成功(384流式、40普通)、0错误,活跃流P50/峰值128,97.3%样本达到目标90%;逐笔账务、全量账本、响应及归档一致,扣款2120/1060、两户预占为0。772个探针事件无失败、无丢弃,全部使用专用池且每实例实际连接不超过1。两轮稳态活跃流最低分别为91和90,符合既定采样门槛,不能表述为每个瞬间都维持128条流。
两轮最慢探针分别约285毫秒和25毫秒,仅是本次观测,不能据此给出固定性能提升比例。受控占池测试证明隔离机制有效,远端对照证明该制品完成本轮请求与账务;两者均不证明历史间歇503的唯一根因已经确认。
两轮临时服务、容器、凭据和目录均已清理,原有三个业务容器保持运行且启动时间一致,无付费调用。隔离功能默认关闭,仅本次测试显式启用;原身份 /readyz 路径不在本次隔离范围内。
本项限定验收通过。用户已将下一项收窄为503 原因调查,并已自然复现Edge等待Core响应超过1秒触发拒绝;Core内部等待的精确分解仍未确认。后续探针与账务争用修复已通过同128配置的限定验收;256/512扩量仍未执行。 保留128重复观察与全量账务门禁。任意请求、计量或结算失败即停止,不调整失败阈值。2000并发、多账户分布、真实高带宽token输出、其他协议及生产切换仍需分别验收。
固定制品、源码摘要、独立检查、原始采样与逐笔审计保存在 coordination/next11-probe-isolation/。2000并发及生产切换仍未验收。
隔离验收边界
专用池必须与业务池使用同一已解析DSN及相同数据库事实源,启动核对身份与schema,仅PostgreSQL可显式启用。不得使用GORM会话复制冒充独立连接池,不得对SQLite内存库误开第二个数据库,不得在故障时回退业务池或复用旧ready结果。
本机要分别占满业务池和探针池,验证隔离有效且探针自身故障仍按时失败;Redis、表结构、迁移校验和及模型失效仍须拒绝。远端要同时核对成功请求、唯一执行、原始响应、准确扣费、全量账本、归档和零残留预占。探针健康不表示业务一定有空闲容量;若准入或结算超时增加,仍判容量失败。