5

有没有尝试过针对 Azure AppFabric 缓存使用 NHibernate Velocity L2 缓存提供程序?如果有,你发现了什么?

附带说明一下,我们使用 SQL Azure 来存储我们的数据。

4

2 回答 2

2

最新版本“Windows Azure 缓存(预览版)”应该对您有所帮助 - http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/9a2dbd9f-1b9d-4249-a48b-216d9dfdc2bc

您可以支持通知、改进延迟、更大的灵活性和仅基于您配置的 VM 的计算成本的定价。

于 2012-06-18T13:37:45.377 回答
1

我们的缓存用例如下:

  1. 我们希望通过缓存经常访问的 SQL Azure 数据来加速我们的 Web 应用程序。
  2. 应该通过简单地编辑 NHibernate 配置来启用缓存(就像任何其他 NHibernate L2 缓存一样)。
  3. 在 Azure 角色实例上对这些实体之一进行更新时,更改应立即传播到其他 Azure 实例。
  4. 我们希望避免设置和管理 memcached 之类的麻烦。

不幸的是,Azure AppFabric 缓存的当前状态不适合我们的需求。原因如下:

在调整 NHibernate Velocity 提供程序之后,我们能够在分布式缓存中缓存对象,但是在访问每个实体时会有一个小的延迟(~1 秒)。因为我们试图访问每个 Web 请求的数百个缓存对象,所以每个 HTTP 请求实际上比我们直接访问数据库要慢——当然不是我们想要的。

我们尝试通过启用 AppFabric 本地缓存来解决此问题。性能得到了极大的改善,但这又引发了另一个问题。一旦对象存储在本地缓存中,它将一直保留在那里直到过期(您可以为缓存设置过期时间跨度)。在这一点上,AppFabric 本地缓存和 NHibernate SysCache 提供程序(使用 ASP.NET 缓存)之间没有太大区别,只是您必须为 AppFabric 缓存支付额外费用。

如果 Azure AppFabric 本地缓存支持通知(如其Windows Server AppFabric 表亲),我们会很乐意使用 Azure 缓存。请在 www.mygreatwindowsazureidea.com 投票支持此功能

作为参考,一位同事在 Azure 论坛上发布了一个关于使用 AppFabric 本地缓存的问题。

如果有人发现 MS 在 Azure 上启用了本地缓存通知,请发布我原来问题的答案

于 2011-12-17T21:51:16.737 回答