【发布时间】:2013-03-02 04:50:28
【问题描述】:
Windows Azure Caching Document 说
如果可能,存储和重用相同的 DataCacheFactory 对象以节省内存并优化性能。"
有没有人看到任何指标或量化这有多昂贵?
“MaxConnectionsToServer 设置...确定每个 DataCacheFactory 向缓存集群打开的通道数。”
因此,如果 MaxConnectionsToServer = 1 并且 DataCacheFactory 在您的应用程序中是一个单例,那么您已经有效地将所有请求同步到您的网络服务器!
但是,there is a lot 表明 DataCacheFactory 应该是单例(即放入 Application_OnStart)。
这很关键,我不敢相信它不在 Microsoft 文档中。 DataCacheFactory 在 AppFabric、Azure 共享缓存和 Azure 缓存中的处理方式是否相同?我只是很难相信微软以需要单例工厂对象的方式设计缓存。这就像要求任何使用 SqlConnection 的人在他们的应用程序中拥有一个单例 SqlConnectionFactory 对象。
因此,考虑到一个相对平均的 Web 应用程序(例如,每小时 1,000 次请求,缓存中约 100 个对象,平均请求访问 5 个缓存对象):
- 默认情况下(和建议)一次应该有多少个 Factory 对象?
- 创建 DataCacheFactory 引用需要多长时间?
- 创建 DataCache 引用需要多长时间?
- 每个应用程序应该只有 1 个 DataCacheFactory 对象,每个请求只有 1 个 DataCache 引用吗?
编辑(正在回答):
(1/2)。让 Azure 连接池处理 Factory 对象
(3)。还在测试中……
(4)。仍在试图弄清楚我是否应该重用 DataCache 引用
【问题讨论】:
-
关于 questin 3/4 有更新吗?您是否为每个请求创建一个 DataCache?
-
Robar,我们发现一旦我们转移到缓存连接池,为每个请求创建一个 DataCache 引用是很便宜的。
-
但是,我们发现缓存并没有解决与 SQL Azure 性能相关的潜在问题,因此我们不再使用 Azure。如果您需要高性能事务数据库,那么 SQL Azure 会出现问题。如果您有一个内容管理系统(即主要是读取),我猜缓存应该可以解决您的问题。
-
感谢您的回复。
标签: azure azure-caching