Bob*_*r02 8 caching distributed-computing
我试图了解分布式缓存的基本概念及其用法.
首先,分布式缓存是一组机器,它们一起充当所有客户端的大缓存,还是客户端保留其本地缓存,一个协调器只是向所有客户端发送更新,说明如何同步其LOCAL副本?
其次,如果缓存是维护缓存数据的分布式机器集,为什么我们不直接向DB发送查询,而是通过网络将请求发送到缓存?我猜性能开销可能类似......
最后,分布式缓存的主要好处是什么,即为什么人们不坚持使用传统的本地缓存模型?
非常感谢您提供的所有答案/资源.
我将使用Couchbase作为分布式缓存(http://www.couchbase.com/)的示例。
第一个问题:分布式缓存如何协调数据?
答:通常情况下,分布式缓存是确实作为一个逻辑单元的机器上。因此,您可能有五台计算机都运行Couchbase,它们会为您处理数据完整性和冗余性。换句话说,如果一台计算机死了,您仍然可以从群集中获取数据。(但是,是的,如果发生故障,每个节点将有一个数据副本。)
某些群集计算机将在群集中的计算机前面有一个进程来路由请求,有时您使用多个连接字符串,客户端会将请求循环到群集。仅取决于技术。
第二个问题:既然高速缓存全部通过网络,为什么还要使用高速缓存?
答:相当多的分布式缓存技术仅存在于RAM /内存中。他们永远不必去磁盘查询,因此它们比典型的数据库要快。
此外,数据库通常还必须做一些工作才能将来自多个表的数据连接在一起,而高速缓存通常只是将数据存储在键/值中。这意味着缓存永远不需要实际处理任何事情。它只是进行廉价的直接查找。
第三个问题:为什么要在本地缓存上使用分布式缓存?
答:开始扩展时,您将需要分布式缓存。
首先,缓存可能会变得非常大,如果仅在内存中运行,它将与您的Web服务器(或其他)竞争资源。最好有一台专门用于缓存的机器。
其次,缓存的扩展方式与堆栈中的其他技术不同。每十个Web服务器节点可能只需要四个缓存节点。最好分开。
最后,您希望任何客户端都能够连接并获取最新数据。否则,如果用户从一个Web服务器反弹到Web场中的另一个服务器,则缓存的数据可能会大不相同。
| 归档时间: |
|
| 查看次数: |
897 次 |
| 最近记录: |