2011-02-08 54 views
3

我有一个运行在100台服务器上的应用程序。这个应用程序与我不喜欢的nosql数据库进行通信。 100个服务器创建会话,锁定,提交等。高速缓存养殖,读取池

我想构建一个缓存服务器场或IIS服务器将要去的脏实际池,并从中读取数据,对象。缓存将每隔一段时间到期。等等。

重点在于避免从这100个服务器访问数据库。

您对这个缓存服务器场有什么用?

WCF?休息?最佳实践和模式缓存块?或Windows AppFabric?

我已经有一层分布式缓存,所以没有想到这一点。

你会选择什么架构?任何建议或案例研究?

+1

为什么你不想要一个分布式缓存?这不是你所描述的吗? – David 2011-02-08 21:15:06

+0

我已经有分布式缓存。我使用速度缓存,它仍然是阿尔法(死)变成天青(或其他)。不支持它。 – DarthVader 2011-02-08 21:57:38

回答

1

我们在这里谈论的是什么样的数据量?几KB? MB?一百GB?

如果只是后者,而不是重新发明轮子,请使用现有的缓存服务之一。基于C#标记和提及IIS,我假设你正在运行Windows。因此我建议你看看Memcached

从Memcached的页面:

免费&开源的,高性能的,分布式的内存对象缓存系统,通用的性质,但预期用于通过减轻数据库负载来加速动态Web应用程序。

Memcached是内存中的键值存储,用于从数据库调用,API调用或页面呈现结果中为任意数据(字符串,对象)创建小块。

我已经在类似于您所描述的环境中使用Memcached(使用MS SQL而不是nosql进行数据存储)。在首轮高速缓存调优之后,我们并没有遇到任何问题。

不知道您的要求的具体情况,很难说如果Memcached是正确的解决方案,但它肯定是值得研究的东西。仅供参考他们的常见问题Wiki可以在这里找到:

http://code.google.com/p/memcached/wiki/FAQ