3

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

4

2 回答 2

2

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

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

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

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

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

有关缓存细节的更多信息,请参见此处

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

于 2012-03-18T01:34:35.983 回答
0

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

于 2013-11-28T15:58:08.900 回答