1

我们的站点最近被分成了几个较小的站点,然后分布在不同的IDC中。

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

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

您会推荐什么缓存更新策略来确保数据完整性?

4

1 回答 1

1

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

它有两种可能的实现模型:

1.Pull 主服务器拉取带有通知消息的子服务器,例如"resourceID=34392 not more valid in your cache". 此消息应在主服务器上的每次数据更新时发送。

  1. 轮询每个子服务器在将缓存项提供给用户之前向主服务器询问缓存项的有效性。"If-object-was-updated"当然,在这种情况下,主服务器应该在最后一个缓存生命周期内保持更新的对象列表,并且非常快速地响应请求。

正如您在这两种情况下看到的,您的主服务器应该在每次数据更改时触发一个事件。在第一种情况下,此事件将通过“通知总线”传输到子服务器,在第二种情况下,此事件将存储在recently-updated-objects列表中。所以这两个选项都需要在主服务器上进行一些代码更改。

对我来说,第二个选项更容易实现,但这很大程度上取决于您使用的软件堆栈。

于 2011-01-20T08:29:36.423 回答