我正在制定一项计划,通过为WCF Web服务缓存用户数据库来提高Web应用程序的性能和可伸缩性。目标是通过访问此数据inProc与数据库服务器的往返来提高性能,并通过减少数据库服务器上的负载来提高服务的可伸缩性,从而允许添加更多Web服务器以增加规模。
在研究AppFabric时,我真的没有看到我的情况中的价值,因为它似乎在大多数情况下,我只是用往返缓存集群来替换数据库的往返(看起来像它甚至可能比db更有开销来保持节点同步。
对于性能问题,似乎使用asp.net缓存(正在进行中)将比到缓存集群的往返要快得多,即使数据在这些服务器上的内存中,即使某些它在本地缓存(我相信它仍然会从网络应用程序中退出)。
对于可伸缩性问题,似乎更容易将相同的Web服务器添加到Web场(每个缓存正在处理的用户数据),而不是单独管理缓存集群,这会增加复杂性。
话虽如此,根据我的既定目标,有人可以解释为什么我会选择一种方法而不是另一种方法吗?如果您推荐使用AppFabric方法,您能否解释一下性能如何比在正在进行的asp.net缓存中存储数据更好。
谢谢!
答案 0 :(得分:2)
你是对的,App Fabric缓存存储在进程外。
当请求进入app fabric缓存项时,首先查找项目的位置,然后使用wcf net.tcpip调用来获取项目。因此,它会比asp.net缓存慢。但有时appfabric缓存更好:
答案 1 :(得分:1)
我在codeproject上找到了this topic。希望它能回答你的问题
答案 2 :(得分:0)