我们有一个非常简单的AppFabric设置,其中有两个客户端 - 让我们称它们为服务器A和服务器B.服务器A也是主导缓存主机,并且服务器A和B都启用了本地缓存。我们希望能够更新来自服务器B的项目,并在30秒内将该更改传播到服务器A的本地缓存(例如)。AppFabric同步本地缓存
据我所知,似乎有越来越传递给客户端的变化的两种不同的方式:
- 在客户端缓存设置超时驱逐项目每X秒。在该项目下一个请求会从主机缓存拿到项目,因为在本地缓存中没有该项目
- 启用通知和有效订阅从缓存主机
获得更新。如果我的要求是要在30秒内获得所有客户端的更新,那么在本地高速缓存上设置超过30秒的超时时间似乎是使用上述选项#1时唯一的选择。由于缓存的大小,这将无法有效驱逐所有的缓存(其中99.99%可能在最近30秒内没有改变)。
我认为我们需要实现的是上面的选项#2,但我不确定我是否理解这是如何工作的。我已经阅读了所有的msdn文档(http://msdn.microsoft.com/en-us/library/ee808091.aspx)并查看了一些示例,但是我仍然不清楚是否真的有必要编写自定义代码,或者仅当您想要进行额外处理时才这样做。
所以我的问题是:是否有必要添加代码到现有的应用程序,如果想通过通知传播到所有本地缓存更新,或者是回调功能只是一个额外的处理方式或代码,如果通知被推倒?我可以只启用通知并在客户端设置适当的轮询间隔,而且事情会正常工作吗?
它似乎是默认行为(启用通知时)应该是在每个轮询间隔自动下拉新鲜项目。