【问题标题】:Recommended way to use asp.net sessions on Azure在 Azure 上使用 asp.net 会话的推荐方式
【发布时间】:2013-11-28 23:58:08
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2014-08-21
        • 1970-01-01
        • 2012-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 2016-09-03
        相关资源
        最近更新 更多