1

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

4

1 回答 1

2

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

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

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

当一个 get 完成时,正确的分区也是基于 key 的 hash 来确定的。然后将 get 发送到拥有该分区的机器,一旦读取了值,结果就会发送回客户端。

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

于 2013-09-27T03:20:41.240 回答