推荐缓存更新策略

时间:2011-01-20 07:53:33

标签: performance caching architecture distributed-computing distributed-caching

我们的网站最近分为几个较小的网站,然后分布在不同的IDC中。

其中一个站点提供用户身份验证和其他用户相关服务,其他站点通过Web服务访问它。

在每个远程获取数据的站点上,我们创建一个本地缓存,这样我们就不必在每次需要用户信息时都远程访问。

您建议使用哪种缓存更新策略来确保数据完整性?

1 个答案:

答案 0 :(得分:1)

由于您需要接近实时的更新策略,因此您肯定需要缓存失效通知引擎。

有两种可能的实施模型:

1.Pull 主服务器使用"resourceID=34392 not more valid in your cache"等通知消息来提取子服务器。 应在主服务器上的每次数据更新时发送此消息。

  1. 民意测验 每个子服务器在向用户提供之前向主服务器询问缓存项有效性。 当然,在这种情况下,主服务器应该保持在上一个缓存生命周期内更新的对象列表,并且非常快速地响应"If-object-was-updated"个请求。
  2. 正如您在两种情况下看到的那样,您的主服务器应该在每次数据更改时触发事件。 在第一种情况下,此事件将通过“通知总线”传输到子服务器,在第二种情况下,此事件将存储在recently-updated-objects列表中。 因此,这两个选项都需要在主服务器上进行一些代码更改。

    至于我,第二个选项更容易实现,但它取决于你正在使用的软件堆栈。