14

我正在寻找一个 java 分布式缓存解决方案。我们希望功能喜欢:

  • 分散式
  • 自动发现
  • 冗余
  • 非集中式

我们已经分析了一个像 TerraCotta 这样的框架,它似乎是我们想要从缓存框架中获得的一切......但是,似乎需要一个中央缓存节点,这成为我们的单点故障.

除了推出我们自己的解决方案之外,还有什么想法吗?

4

8 回答 8

16

试试Hazelcast。它是用于 Java 的开源集群和高度可扩展的数据分发平台。它满足您的所有要求。此外,它非常易于使用。

于 2010-02-20T20:26:53.977 回答
8

我建议使用JBossCacheEhCache(带有分布式缓存侦听器)。我都用过,我都喜欢,它们都符合你的要求。

于 2009-09-28T13:11:11.157 回答
4

Terracotta 最近收购了 Ehcache,并在一个简单的包中发布了 Ehcache API 与 Terracotta 集群存储的紧密集成,并且只需要几行额外的 Ehcache 配置就可以从单节点转到集群,尽管您还必须运行 Terracotta 服务器过程。

带有 Terracotta ES 版本的 Ehcache 是开源的并且可以免费使用。如果您需要支持、更多扩展、赔偿、补丁支持等,可以使用商业许可证。

Terracotta 确实使用中央服务器阵列,而不是单个中央服务器,因此没有单点故障!您可以根据需要设置任意数量的热备份服务器,并且这些备份服务器可以配置为在活动服务器出现故障时接管。使用 Terracotta FX(商业产品),您还可以使用多个活动服务器。

于 2009-11-10T02:26:56.127 回答
4

试试 Infinispan。Infinispan 缓存可以用作分布式缓存,也可以用作复制缓存。不存在单点故障的可能性。在分布式缓存模式下,它可以提供比 Heap Size 更多的空间。考虑集群中有 4 个节点,每个节点的堆大小为 1GB,Infinispan 用作复制缓存,那么集群的总大小为 1 Gb,但如果 Infinispan 用作分布式缓存并为每个数据项设置 2 个副本,那么总大小将为 2Gb。 http://www.jboss.org/infinispan

于 2013-01-11T07:04:43.920 回答
2

你看过连贯性吗?

我们发现它非常有用。虽然它不是开源的或便宜的。

http://www.oracle.com/technology/products/coherence/index.html

于 2009-09-28T13:06:32.627 回答
1

通常,当所有操作都在单个节点上完成时会发生单点故障,如果该节点发生故障,整个操作可能会发生故障。这个问题的解决方案是使用Replica或分区副本这样的拓扑。如果一旦节点宕机,整个操作将转移到另一个节点,而不会丢失任何类型的数据。

至于您正在寻找的功能可以在单个产品NCache中找到,正如 Umer 也提到的那样。

于 2012-05-16T07:33:31.090 回答
1

我迟到了,但你试过 TayzGrid,一个开源的Java 分布式缓存。也称为内存数据网格或键值存储。

它可以满足您的所有基本需求

- Distributed
- Auto-Discovery
- Redundancy
- Non-Centralized

它还管理高级故障转移场景,例如脑裂和突然重启。所有节点都是智能的,因此完全分布。

您还可以选择要使用的拓扑(分区或复制)。如果您想使用更高级的拓扑(副本分区),那么您可以购买许可证

于 2015-08-24T07:12:20.210 回答
0

Terracotta还提供分布式缓存。

于 2009-09-28T13:15:25.400 回答