【问题标题】:Implementing Window Azure Cloud Services Web Role With Shared Cache Dedicated Roles?使用共享缓存专用角色实现 Window Azure 云服务 Web 角色?
【发布时间】:2013-09-18 03:29:01
【问题描述】:

我们(我们的公司)正在托管一个带有 Web 角色的 asp.net C# 云服务,用于报告网站。 不幸的是,报告网站的使用量正在增长,原来仅使用中型 VM 托管,并发现其存在内存泄漏,导致云服务始终关闭并停止工作。最后我们转移到 A7 VM(好吧,那很贵)解决了我们 2-3 个月的问题。不知何故,新东西开发新功能开发最终内存绰绰有余(它的 56GB RAM)但过程不是真的可以同时满足如此昂贵的使用。

在网上寻找解决方案,发现有一个可以使用的共享缓存。 我们决定从 A7 迁移到 XM VM(A7 不支持共享缓存)并使用共享缓存的专用角色。

我们希望实现的是少数实例之间的负载平衡(如果一个实例关闭,它将重定向到另一个实例),并让专用角色存储我们所有的会话内容。我的方向正确吗?

如果是,如何实现?我调查了this,是否真的需要注册一个缓存服务的预览程序才能使用它?

感谢您的建议,如果有错误请指出我的错误。

**不知何故,在从网上阅读内容后,我发现上面提到的方法是一种新方法,而旧方法是角色缓存,我可以从here 看到它。是否可以使用此方法在多个实例之间共享会话状态,即使其中一个实例已关闭并路由到另一个可用的实例并回用会话?

【问题讨论】:

  • Worgon,为什么不使用更大的虚拟机,而不是修复内存泄漏?
  • @Kwill 感谢您的回复,是的,我们这样做了,但发现问题出在我们购买的组件上。不知何故,它提供了需要对代码进行重大更改的解决方案,并且需要付出相当大的努力才能做到这一点,例如创建 SSAS。最后我们决定对此进行更改。

标签: c# asp.net azure azure-caching dedicated


【解决方案1】:

您的最佳选择是使用Windows Azure Cache Service (Preview)。这将允许您在应用程序的多个实例之间共享会话状态。

您需要注册预览服务。缓存核心已经成熟,鼓励客户在其生产应用程序中使用此服务。

此服务允许您使用来自多个云服务的缓存,也允许您跨应用程序共享数据。此外,这消除了您对使用 XL VM 的依赖,因为 A7 不支持 In-Role Cache。

另外,需要明确的是,Cache 有 3 种口味 - 1. 共享缓存 - 这是一项多租户服务,正在被弃用 2. In-Role Caching - 这里的缓存部署在您的云服务中,并且只能在云服务中使用。这是两种类型 - 共同定位和专用。 3. Cache Service (preview) - 新发布的服务。

没有什么叫做专用共享缓存。 :)

【讨论】:

  • 专用(或基于角色)缓存可以在多个实例之间共享,只要它们在同一个托管服务中。此场景无需使用托管缓存服务。
  • @Abhinav Gupta,感谢您的回复。你现在使用缓存服务吗?稳定性如何?顺便说一句,感谢您指出我的错误。
  • @kwill,将继续使用缓存服务,因为我们确实提供了一些能够共享单点登录的其他应用程序。谢谢
  • @Worgon,我在 MSFT 的 Azure 缓存团队中!内核确实非常稳定,我们积极鼓励用户将我们的预览版与他们的生产应用程序一起使用!
  • @AbhinavGupta 好的,我会命令我的老板尽快在这方面进行研发,并对侮辱感到抱歉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-31
  • 2015-10-04
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多