分布式缓存框架是什么意思?我正在寻找一个可以提供示例场景的答案,然后继续解释像Oracle Coherence这样的分布式缓存框架将如何在这种情况下受益。
答案 0 :(得分:0)
在这种情况下,缓存是将经常使用的数据放入内存以提高性能。
那么“分布式缓存”与“本地缓存”又是什么类型的分布式缓存呢?
所以最简单的缓存形式是本地缓存。本地缓存意味着单个机器(通常是服务器)通常通过进行数据库调用然后将数据存储在RAM中来将数据本地存入本地。对于单个服务器现在可以处理所有可扩展性需求以及可预见的未来的问题,这是一种合适的方法。
但是,如果您需要添加越来越多的服务器以满足需求,会发生什么?
只要添加更多服务器,就必须开始考虑哪些数据将存储在哪些服务器的RAM中。一个简单的案例称为“完全复制”,其中每个服务器在内存中包含相同的数据。这适用于经常使用的数据非常小并且服务器内存非常大的情况。在这种情况下,有几种解决方案可能适合您,因为这不是一个特别困难的问题。
更难的问题是,如果经常使用的数据集远大于单个服务器的RAM大小,该怎么办?在这种情况下,RAM Cache必须分布在多个服务器上。典型的实现是分布式散列映射,也称为分布式键值存储。
如果您想了解更多,可以下载电子书章节here that explains about the deployment architecture of distributed cache,在本例中使用Hazelcast,这是一个开源数据网格,通常用作Oracle Coherence的替代品。
举一个例子,想象一下像电子商务商店这样的网络应用程序。为了向电子商务客户提供最佳性能,网站所有者需要能够拥有足够的服务器容量来处理大量流量,即使在假日和“黑色星期五”等高价购物日也是如此。
电子商务网站上最常用的内容是图片和说明,产品目录的定价和评论。
所以在这种情况下,你可以想象这样的内容可能非常大,对于一些电子商务商店来说,内容的总量可以是太字节。
现在一种方法就是购买一台单一的服务器。但你为什么不想这样做呢?简单的答案是灵活性和性价比。如果您需要100台服务器来处理黑色星期五的巨大负载怎么办?或者,如果你推出一款非常受欢迎的病毒产品呢?您可能需要大量服务器......但是第二天或者一周之后,您可能需要更少的机器。
那你为什么要为一年中一天完美的单个巨大的盒子买单,并且在364天的剩余时间里大部分时间都不用呢?
此外,购买一个巨大的盒子通常比购买大量商品盒更加昂贵 - 正是这个原因 - 较小的盒子是商品。这就是为什么FaceBook和谷歌都使用数以千计的商品盒来运行他们的服务而不是一台巨型计算机。
因此,要达到扩展或缩小的最佳灵活点,为实际使用的硬件支付最优价格,并为数据处理或事务处理或缓存实现最高的内存内性能,应该考虑使用像Oracle Coherence这样的内存数据网格产品。或者,您可以使用Google找到开源中Oracle Coherence的几个很好的替代方案。
答案 1 :(得分:0)
分布式缓存是什么意思?
为了在不同节点之间分配缓存查询的负载,数据在缓存服务器中的许多(注意:很多但不是全部)集群节点之间进行分区。
<强>益处:强>
容错 - 如上图所示,在没有节点2 / JVM 2的情况下,可以从另一个节点提供数据。
读写:读写的线性性能可扩展性。
https://blogs.oracle.com/felcey/coherence-clustering-principles http://www.tothenew.com/blog/caching-what-why-and-how-with-hazelcast/