AppFabric同步本地缓存

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

0

我运行了一些测试,并很高兴地说,您不需要编写任何代码来确保所有客户端保持同步。如果将以下内容设置为群集配置的子元素:

在客户端配置中,您需要在 元素上设置 sync="NotificationBased"。
客户端配置中的 元素将告诉客户端它应该每隔多久检查一次服务器上的新通知。在这种情况下,客户端将每隔15秒检查通知,并拉取任何已更改的项目。
我猜您可以添加到应用程序中的回调逻辑只是为了添加自己的特殊逻辑(例如,在缓存中的每个项目更改时给总统发电子邮件)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接