缓存亲和

缓存亲和让同一会话的请求尽量落在最近一次成功的供应商模型上,而不是每个请求都从候选头部开始重挑。

为什么需要它

供应商侧的提示词缓存只在「前后请求共享一段完全相同的前缀」时才可能命中。如果同一会话的连续请求被分到不同供应商、或同一供应商的不同副本,缓存就白建了——你会反复为同一段上下文付全价。

故障转移本身是对的,但「每个请求都从队列头部重新选」会把会话打散。

怎么工作

  • 开启后,OSW 会记住一个会话最近一次成功的供应商模型,后续同会话请求优先复用它。
  • 亲和记录有 TTL:超过 TTL 没有新请求,就自然过期,下一次重新选。
  • 如果亲和的候选已经不可用(冷却中 / 已停用),请求正常走故障转移,并把新的成功者记为亲和的候选。

调参

在设置 → 可靠性 → 缓存亲和里:

设置项说明
启用缓存亲和总开关。
亲和时长(TTL)一段时间没有新请求后,亲和关系自然过期。调长会更黏,但也更久不重新平衡。

TTL 是权衡

TTL 太短,会话还没建立起缓存就重新选路,等于没开;太长,某个渠道降速了也迟迟不换。默认值对多数场景够用。

相关

  • 它与故障转移互补:故障转移保可用性,缓存亲和保成本。
  • 命中的缓存量可以在统计分析里看。

观测请求跑得怎么样,从请求记录开始。