我们有一个非常简单的AppFabric设置,其中有两个客户机--让我们称它们为服务器A和服务器B。服务器A也是领先的缓存主机,服务器A和服务器B都启用了本地缓存。我们希望能够从服务器B对项进行更新,并在30秒内将该更改传播到服务器A的本地缓存(例如)。
据我所知,似乎有两种不同的方法可以将更改传播到客户端:
如果我的要求是在30秒内对所有客户端进行更新,那么在本地缓存上设置不到30秒的超时似乎是唯一的选择,如果使用上面的选项#1。由于缓存的大小,将所有缓存(其中99.99%的缓存可能在过去30秒内没有更改)排除掉是效率低下的。
我认为我们需要实现的是上面的选项2,但我不知道这是如何工作的。我已经阅读了所有的msdn文档(http://msdn.microsoft.com/en-us/library/ee808091.aspx),并看过一些示例,但我仍然不清楚是否真的有必要编写自定义代码,或者这只是在您想要进行额外处理的情况下才编写的。
因此,我的问题是:如果希望通过通知将更新传播到所有本地缓存,那么是否有必要向现有应用程序添加代码,或者如果按下通知,回调功能只是添加额外处理或代码的额外方式吗?我可以只启用通知并在客户端设置适当的轮询间隔吗?
似乎默认的行为(当启用通知时)应该是在每个轮询间隔自动提取新项。
发布于 2013-07-25 15:48:44
我运行了一些测试,并且很高兴地说,您不需要编写任何代码来确保所有客户端保持同步。如果将以下设置设置为群集配置的子元素:
在客户端配置中,需要在元素上设置sync="NotificationBased“。
客户端配置中的元素将告诉客户机应该多久检查一次服务器上的新通知。在这种情况下,客户端将每15秒检查一次通知,并删除任何已更改的项。
我猜,您可以添加到应用程序中的回调逻辑是为了防止您想要添加自己的特殊逻辑(比如每次缓存中的项目发生变化时都会给总统发电子邮件)。
https://stackoverflow.com/questions/17838655
复制相似问题