无法实现PartitionAware,因为Hazelcast Map的put方法会在缓存未命中时自动调用

时间:2017-09-15 09:29:14

标签: hazelcast hazelcast-imap

我们有一个Write EntryProcessor,用于更新数据。 HazelcastMapConfig配置为MapStore。每当我们加载一些数据时,如果地图中不存在数据,则会自动触发MapStore的load()方法,并将数据填充到地图中。 (load()方法调用数据库并获取数据。)

我们这里没有对分区的控制权。我无法使用PartitionAware并将数据导入分区,因为我认为put方法是内部调用的。

如何在此处将数据放入特定分区(使用入口处理器和MapStore时)?

2 个答案:

答案 0 :(得分:0)

Hazelcast不提供对分区的控制,以存储要存储在特定分区中的特定条目或条目。 PartitionAware用于创建数据亲和性,以便多个映射的相关内容可以存储在同一个分区上。在您的问题上,无论密钥是通过直接 map.put 还是MapLoader加载,Hazelcast始终尊重条目密钥的PartitionAware实现。

答案 1 :(得分:0)

您还可以在hazelcast中阅读有关受控分区的博客 https://blog.hazelcast.com/controlled-partitioning/