AppFabric缓存和SQL依赖项

时间:2013-03-05 16:21:15

标签: sql-server appfabric microsoft-sync-framework appfabric-cache

我正在考虑为我的应用程序使用AppFabric缓存,但我不清楚如何让它做我想要的。我在1个位置有1个SQL群集。我在全球拥有200多台应用服务器。我想在每个位置放置一个AppFabric缓存集群,以便应用程序服务器可以快速访问SQL对象。除了快速访问之外,我还需要它们在SQL群集不可访问的情况下访问数据。

有一个HR应用程序直接更新SQL群集,以便数据发生变化。应用程序服务器还将在许多位置更新AppFabric缓存。所有这些数据都需要保持同步。以下是我的问题:

  1. 数据库更改后如何更新缓存?我读到SQLDependency是我需要的,但我也读过,一旦有变化,我的整个缓存将被刷新,并且必须重新同步。我希望只需将更改的对象发送到多个缓存进行更新。

  2. 如果SQL群集无法访问且缓存无法找到所请求的对象,会发生什么?

  3. 有没有更好的方法来做我想做的事情?这更多地是关于SQL对象可用性而不是性能。即将研究MS Sync Framework ...

2 个答案:

答案 0 :(得分:1)

AppFabric不支持缓存依赖项对象,如SqlCacheDependency,但您可以做的是为AppFabric创建一个直读/后写缓存提供程序。此提供程序知道SQL Server数据库的结构,因此它可以从数据库中检索信息可以在进行更新时更新数据库。您的应用程序服务器更新AppFabric缓存,因此您的缓存始终具有最新版本的数据,然后缓存将更新写入数据库异步

为了应对更新后端数据库的HR应用程序,您可以根据生存时间值配置缓存中的项目到期,随后对缓存的请求将刷新缓存版本。

答案 1 :(得分:0)

我知道你在一段时间后发布了这个,但是有一些缓存解决方案可以让你利用缓存依赖关系来与主数据源进行synschon化。 NCache可以使用SQL依赖关系来处理您的情况。使用NCache,您可以有多个选项与数据库同步,一旦这样的选项是“通读”。因此,当数据库发生更改时,依赖对象会自动从缓存中删除,如果启用了read-through,则缓存服务器会自动检索该对象的新副本。您可以阅读有关Database Synchronization here

的更多信息
相关问题