由于大量缓存对象,我们目前面临问题。我们从ERP系统(对于在线商店)缓存数据,IIS将刷新网页,因为它达到了最大内存量,并且我们丢失了所有兑现的对象。由于这使得缓存的想法有点问题,我们正在寻找一种解决方案来使用不同的解决方案来缓存对象。
我找到了微软的AppFabric,因为它已经包含在我们的Windows Server许可证中,是一个非常简洁的解决方案。
当我使用AppFabric Velocity而不是MemoryCache Class(我们当前的缓存解决方案)时,我仍然担心会遇到巨大的性能问题。
所以现在我的问题是,这是我们问题的解决方案,还是我在这里过度思考,AppFabric的性能是否足够快?
答案 0 :(得分:2)
Grid Dynamics对使用AppFabric here做了很好的报道。虽然我不知道您的特定缓存操作的数字,但该报告显示AppFabric的性能显着。在一次测试中,他们希望了解缓存的大小如何影响缓存操作性能。在读取数据时,它对缓存操作性能几乎没有影响。更新时,对缓存操作性能有影响,但不是一个荒谬的数量。在测试对象大小和性能时,很明显,较大的对象会降低性能(此处的吞吐量性能)。总体而言,该报告具有可靠的测试和统计数据,表明AppFabric Cache的性能非常出色。
不,Grid Dynamics没有将结果与其他产品进行比较,但它们确实向您展示了AppFabric Cache在不同测试中的表现。他们有一个特别有用的附录部分,可以提供详细信息,以帮助不同使用场景的人。
与往常一样,使用与IIS实例不在同一台计算机上的解决方案会增加从缓存中获取会话数据的时间,但我们正在谈论一小段时间。
答案 1 :(得分:0)
如果我了解您的情况,那么可用的对象缓存解决方案可让您根据应用程序逻辑或缓存开始填充时将对象缓存在内存中并使它们到期。
Appfabric在这方面并不是一个非常成熟的产品,尤其是在谈论“inproc”缓存时。您需要一个客户端缓存,它实际上是驻留在“proc”中并与分布式缓存保持同步的分布式缓存(意味着所有缓存对象)的子集。
我建议的一个解决方案是使用NCache as a distributed cache并为您的ERP对象使用其clinet缓存功能。