azure - 在 Azure 上使用 asp.net session 的推荐方法

标签 azure azure-sql-database azure-appfabric

我读过几篇文章,其中提到推荐使用 azure 上的开发应用程序结构缓存,而其他文章则说使用通用提供程序并使用 sql azure 将 session 状态存储在 sql azure 表中。有专家请告诉我哪个更好以及为什么? “为什么”是必需的,所以我提出我的案例以供推荐。谢谢

最佳答案

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

SQL Azure 通过通用提供程序,不会有这样的限制。我不知道您的缓存存储要求,但如果缓存低于 100MB,您现在谈论的是每月 5 美元的缓存,而缓存服务的最低费用为 45 美元。如果您需要完整的 4GB 缓存空间,5GB SQL Azure 缓存会便宜得多。

话虽如此:缓存提供程序有一个特定的使用目标。例如:4GB 缓存每小时支持多达 1280 万个事务,或每秒超过 3,500 个事务。即使是 128MB 缓存提供程序每秒也能处理超过 100 个事务。

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

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

有关缓存详细信息的更多信息,请参阅 here .

编辑除了 SQL 和共享缓存之外,您现在还可以配置自己的专用缓存,可以使用现有角色的内存(无需任何成本),也可以使用部署中的缓存角色(无论成本如何)角色实例成本)。这是最快的选项,因为它与您的部署位于同一位置。它还支持memcached协议(protocol)。更多信息可查询here .

关于azure - 在 Azure 上使用 asp.net session 的推荐方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755038/

相关文章:

azure - 如何使用带通配符的 AzureSearch

azure - 在 Azure 中分配/导入/颁发自动续订的应用服务证书?

sql - 在一列中存储不同的数据类型以减少表数

azure - 连接到 AppFabric 时 X.509 链构建失败

caching - 将自定义缓存序列化器与 Azure App Fabric 结合使用

asp.net-mvc - ASP.NET MVC 与 Azure B2C 刷新 ID token 问题

azure - 从守护程序应用程序调用 Azure 中的 ASP .NET Core API

azure - 是否可以通过 REST API 列出 Azure 中的所有数据库

azure - Azure 中的跨数据库插入?