我们的网站最近分为几个较小的网站,然后分布在不同的IDC中。
其中一个站点提供用户身份验证和其他用户相关服务,其他站点通过Web服务访问它。
在每个远程获取数据的站点上,我们创建一个本地缓存,这样我们就不必在每次需要用户信息时都远程访问。
您建议使用哪种缓存更新策略来确保数据完整性?
答案 0 :(得分:1)
由于您需要接近实时的更新策略,因此您肯定需要缓存失效通知引擎。
有两种可能的实施模型:
1.Pull
主服务器使用"resourceID=34392 not more valid in your cache"
等通知消息来提取子服务器。
应在主服务器上的每次数据更新时发送此消息。
"If-object-was-updated"
个请求。正如您在两种情况下看到的那样,您的主服务器应该在每次数据更改时触发事件。
在第一种情况下,此事件将通过“通知总线”传输到子服务器,在第二种情况下,此事件将存储在recently-updated-objects
列表中。
因此,这两个选项都需要在主服务器上进行一些代码更改。
至于我,第二个选项更容易实现,但它取决于你正在使用的软件堆栈。