代码之家  ›  专栏  ›  技术社区  ›  user2310939

Hazelcast内部共享分布式地图

  •  1
  • user2310939  · 技术社区  · 11 年前

    我们一直在实现Hazelcast2.5作为我们的分布式缓存机制。在完全实现Hazelcast分布式映射之前,我们可以了解一下Hazelcast是如何实现分布式映射的。即如何在两个JVM之间共享数据。Hazelcast正在使用它自己的扩展地图吗。

    1 回复  |  直到 11 年前
        1
  •  2
  •   pveentjer    11 年前

    我们实现了Map接口(更确切地说是ConcurrentMap接口)。但在这个接口下面,实现是完全自定义的。

    Hazelcast根据地图条目的关键字对数据进行分区。默认情况下,有271个分区,这些分区分布在集群中的成员中。因此,对于一个2节点的集群,每个成员都可以获得+/-135个分区。

    写入完成后,将根据密钥的哈希值确定正确的分区。然后将写操作发送到拥有该分区的机器并进行处理。

    当get完成时,也会根据密钥的散列来确定正确的分区。然后,get被发送到拥有该分区的机器,一旦读取了值,结果就被发送回客户端。

    这是对Hazelcast地图如何工作的一个非常简单的解释。