3

有人知道用于分布式哈希图 (DHT) 的好的 Java 框架吗?

前段时间我使用Overlay Weaver,但这里缺少一个好的文档,所以我只将它用于具有丑陋黑客的原型......但现在我需要可靠的代码。还是有人为 OverlayWeaver 找到了一个好的文档?

如果 dht 框架支持 Chord 或 Kademlia 并且可以在我的 java 应用程序中调用,那将是完美的。

或者有人知道在分布式系统中保存可靠且故障安全的短字符串数据的更好方法吗?

4

4 回答 4

10

我认为Hazelcast适用于这种情况。它实际上不需要任何设置(除了您需要将依赖项添加到 Hazelcast jar 之外)。以下代码示例显示了如何设置共享Map.

// Code in process 1
Config cfg = new Config();
HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
Map<Integer, String> sharedData = instance.getMap("shared");
sharedData.put(1, "This is shared data");

// Code in process 2
Config cfg = new Config();
HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
Map<Integer, String> sharedData = instance.getMap("shared");
String theSharedString = sharedData.get(1);

Hazelcast 支持各种共享数据结构,包括, , ,MapQueueList文档很好根据我的经验,实现是可靠的。AtomicLongIdGenerator

如果您使用的是健全的构建环境(例如 Maven),则只需以下依赖项即可开始:

<dependency>
    <groupId>com.hazelcast</groupId>
    <artifactId>hazelcast</artifactId>
    <version>3.4</version>
</dependency>
于 2015-01-07T08:28:39.777 回答
2

试试Hazelcast。它是开源的并且有企业支持。

于 2015-01-07T08:21:34.643 回答
0

您还可以检查Apache Ignite。它支持内存中分布式键值存储、分布式任务、持久内存、分布式锁等。它还支持符合ANSI-99的分布式SQL。

入门就像添加 maven 依赖项一样简单 -

<dependency>
    <groupId>org.apache.ignite</groupId>
    <artifactId>ignite-core</artifactId>
    <version>${ignite.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.ignite</groupId>
    <artifactId>ignite-spring</artifactId>
    <version>${ignite.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.ignite</groupId>
    <artifactId>ignite-indexing</artifactId>
    <version>${ignite.version}</version>
</dependency>
于 2018-11-22T05:07:17.997 回答
0

试试Redisson PRO。它支持分片地图

于 2016-06-09T15:34:36.897 回答