5

我想使用 Ehcache 复制缓存,首先作为 Hibernate 二级缓存的后端,其次作为任何数据的缓存。

我知道像 memcached 这样的分布式缓存是如何工作的,并且我知道它可以扩展到大型集群,但是我找不到 Ehcache 复制在大型集群上的行为方式。

  • 有人指向某些信息或某种基准吗?

我发现可以使用许多复制策略,例如 RMI、JGroups、JMS 或 Terracotta,而 RMI 和 Terracotta 似乎是最受欢迎的。

  • 它们如何在大型集群上进行比较?

当我添加许多节点(比如几十个)时,复制会扼杀我的表现吗?

4

3 回答 3

4

完全复制的缓存仅在您的应用程序以读取为主时才有效。复制缓存无法扩展;将更新传递给其他节点会降低您的性能。您需要带有备份副本的分区缓存。即使对于写入密集型应用程序,分区缓存也将线性扩展。

试试榛果!它是用于 Java 的开源(Apache 许可)事务性、分区缓存解决方案。它带有休眠二级缓存插件。

几十个?没问题。Hazelcast 100 节点集群演示可以在这里找到

于 2010-05-04T08:50:19.017 回答
3

集群扩展问题的一个很好的解决方案是“伙伴复制”的概念,其中数据仅复制到每个节点的邻居(无论您如何定义),而不是所有节点。您可以在没有扩展问题的情况下进行故障转移。

据我所知,ehcache 不这样做。然而,JBossCache 确实如此,而且它也以与 ehcache 相同的方式与 Hibernate 集成。

于 2009-07-29T21:30:29.040 回答
1

您是否阅读了手册中有关使用 ehcache 进行分布式缓存的部分?

还有以下章节:

于 2009-07-29T14:44:50.593 回答