【问题标题】:Distributed Hashmap in java or distributed information storagejava中的分布式Hashmap或分布式信息存储
【发布时间】:2015-01-07 08:18:15
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java dht


    【解决方案1】:

    我认为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 支持各种共享数据结构,包括 MapQueueListAtomicLongIdGenerator 等。The documentation is good 并且根据我的经验,实现是可靠的。

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

    <dependency>
        <groupId>com.hazelcast</groupId>
        <artifactId>hazelcast</artifactId>
        <version>3.4</version>
    </dependency>
    

    【讨论】:

    • 哇榛树真的很棒而且很简单。感谢您的快速回答:-)
    • 但似乎可以付费,所以可能有一些限制。你知道免费版的限制吗?
    • 查看此定价:hazelcast.com/pricing - 开源替代方案不包括支持、Tomcat 会话集群等
    • 但是免费版是否有一些速率限制(例如队列中的许多项目)?这里没有提到,所以我想没有,但我不知道。
    • 我会这么认为,因为它没有被提及。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      试试Redisson PRO。支持sharded maps

      【讨论】:

        【解决方案4】:

        您也可以查看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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-15
          • 2011-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-20
          • 1970-01-01
          • 2015-02-09
          相关资源
          最近更新 更多