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