问题描述
当知识库查询远端数据库时,如果某个查询持续失败,相同请求可能会反复绕过缓存并直接访问远端数据库。
这类情况常见于:
- 远端数据库短时不可用或连接不稳定。
- 查询 SQL、表结构或字段配置存在错误。
- 依赖的外部知识库服务持续返回异常。
- 高频日志中大量记录命中同一个异常查询条件。
在这些场景下,即使请求内容完全相同,也可能每次都重新访问远端数据库,形成缓存穿透。
影响
- 放大远端数据库压力。
- 增加连接池占用和查询延迟。
- 在异常持续期间产生大量重复错误日志。
- 高频处理链路中可能进一步拖慢整体解析吞吐。
期望行为
- 对相同的失败查询,应在短时间内避免重复访问远端数据库。
- 再次遇到相同失败查询时,直接返回空值语义结果,并保留错误日志可观测性。
- 当缓存过期或知识库重新加载后,应允许重新尝试查询,以便故障恢复后自动恢复正常结果。
验收标准
- 首次失败查询会记录错误。
- 短时间内相同失败查询不会继续打到远端数据库。
- 重复失败查询仍能打印可观测错误信息。
- 缓存过期后会重新尝试访问远端数据库。
- 非缓存查询路径保持原有错误行为。
问题描述
当知识库查询远端数据库时,如果某个查询持续失败,相同请求可能会反复绕过缓存并直接访问远端数据库。
这类情况常见于:
在这些场景下,即使请求内容完全相同,也可能每次都重新访问远端数据库,形成缓存穿透。
影响
期望行为
验收标准