Skip to content

查询失败时可能导致远端知识库缓存穿透 #18

Description

@zwk4zhendeC

问题描述

当知识库查询远端数据库时,如果某个查询持续失败,相同请求可能会反复绕过缓存并直接访问远端数据库。

这类情况常见于:

  • 远端数据库短时不可用或连接不稳定。
  • 查询 SQL、表结构或字段配置存在错误。
  • 依赖的外部知识库服务持续返回异常。
  • 高频日志中大量记录命中同一个异常查询条件。

在这些场景下,即使请求内容完全相同,也可能每次都重新访问远端数据库,形成缓存穿透。

影响

  • 放大远端数据库压力。
  • 增加连接池占用和查询延迟。
  • 在异常持续期间产生大量重复错误日志。
  • 高频处理链路中可能进一步拖慢整体解析吞吐。

期望行为

  • 对相同的失败查询,应在短时间内避免重复访问远端数据库。
  • 再次遇到相同失败查询时,直接返回空值语义结果,并保留错误日志可观测性。
  • 当缓存过期或知识库重新加载后,应允许重新尝试查询,以便故障恢复后自动恢复正常结果。

验收标准

  • 首次失败查询会记录错误。
  • 短时间内相同失败查询不会继续打到远端数据库。
  • 重复失败查询仍能打印可观测错误信息。
  • 缓存过期后会重新尝试访问远端数据库。
  • 非缓存查询路径保持原有错误行为。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions