推荐在Azure上使用asp.net会话的方法

时间:2012-03-18 00:37:51

标签: azure azure-sql-database azure-appfabric

我已经阅读了一些文章,其中建议使用azure上的dev app fabric缓存,而其他人则说使用通用提供程序并使用sql azure在sql azure表中存储会话状态。有任何权威人士请告诉我哪个更好,为什么? “为什么”是必需的,所以我把我的案子提前推荐。谢谢

2 个答案:

答案 0 :(得分:2)

缓存对事务/小时,带宽/小时和并发连接数有特定限制。事务和带宽阈值是每个时钟小时,因此您必须保持在这些限制之下。由于价格不是线性的,您可以估算会话使用情况并创建比您需要的更大的缓存,但这只是您需要考虑的事项。

SQL Azure通过通用提供商不会有这样的限制。我不知道你的缓存存储要求,但如果缓存低于100MB,你现在谈的是每月5美元的缓存,而缓存服务的最低价格是45美元。如果您需要完整的4GB缓存空间,那么5GB SQL Azure缓存的成本要低得多。

说了这么多:缓存提供程序具有特定的使用目标。例如:4GB缓存每小时支持多达1280万个事务,或每秒超过3,500个事务。即使是128MB缓存提供商也超过每秒100次交易。

所以:我会用两个基本标准看待这个决定:

  • 如果成本是一个因素,并且您认为SQL Azure可以处理您的缓存事务率和数据量,那么SQL Azure似乎是您最好的选择(并且将扩展到远远超过Cache服务的4GB最大值的大小) )。 SQL Azure没有公布的事务速率信息,但您可以执行一些简单的测试,以查看在看到性能下降之前每秒可以推送多少次会话命中。
  • 如果您的应用需要非常高的事务率,则Cache的已发布事务目标指向Cache作为更好的解决方案。 注意:您可能无法从单个实例中针对Cache生成每秒3,500个事务的内容;这更像是一个多实例场景。

有关缓存细节的详细信息,请参阅here

编辑除了SQL和共享缓存之外,您现在可以配置自己的专用缓存,既可以使用现有角色的内存(无需任何成本),也可以使用部署中的缓存角色(无需花费任何成本)角色实例成本)。这是最快的选择,因为它与您的部署共存。它还支持memcached协议。可以找到更多信息here

答案 1 :(得分:0)

这篇好文章描述了Azure中三种不同会话状态管理的优缺点:sessions in azure