0

由于大量缓存对象,我们目前面临问题。我们缓存来自 ERP 系统(用于在线商店)的数据,并且 IIS 将在网页达到最大内存量时刷新网页,并且我们会丢失所有已兑现的对象。由于这使缓存的想法有点问题,我们正在寻找一种解决方案来缓存具有不同解决方案的对象。

我从 Microsoft 找到了 AppFabric,因为它已经包含在我们的 Windows Server 许可证中,是一个非常简洁的解决方案。

我仍然担心在使用 AppFabric Velocity 而不是 MemoryCache 类(我们当前的缓存解决方案)时会遇到巨大的性能问题。

所以我现在的问题是,这是解决我们问题的方法还是我在这里想多了,AppFabric 的性能是否足够快?

4

2 回答 2

2

Grid Dynamics 在此处对使用 AppFabric 进行了出色的报告。虽然我不知道您的特定缓存操作的数字,但该报告显示了 AppFabric 的大量性能明智。在一项测试中,他们想了解缓存大小如何影响缓存操作性能。仅读取数据时,它对缓存操作性能几乎没有影响。更新时,对缓存操作性能有影响,但不是一个荒谬的数量。在测试对象大小和性能时,显然,较大的对象会降低性能(此处为吞吐量性能)。总体而言,该报告具有可靠的测试和统计数据,表明 AppFabric Cache 的性能非常出色。

不,Grid Dynamics 不会将结果与其他产品进行比较,但它们会向您展示 AppFabric Cache 在不同测试中的性能。他们有一个特别有用的附录部分,可以提供详细信息以帮助不同使用场景的人们。

与往常一样,使用与 IIS 实例不在同一台计算机上的解决方案会增加一点时间来从缓存中获取会话数据,但我们所说的时间很短。

于 2013-05-22T18:16:28.950 回答
0

如果我了解您的情况,那么有可用的对象缓存解决方案可让您将对象缓存在内存中并根据您的应用程序逻辑或缓存开始填满时使它们过期。

Appfabric 在这方面不是一个非常成熟的产品,尤其是在谈论“inproc”缓存时。您需要一个客户端缓存,它实际上是分布式缓存的一个子集(即所有缓存的对象),它驻留在“proc”中并与分布式缓存保持同步。

我推荐的一种解决方案是使用NCache 作为分布式缓存并将其 clinet 缓存功能用于您的 ERP 对象。

于 2013-05-22T10:20:02.397 回答