我在他们的github页面上查看MongoDB与hazelcast集成的代码。
MongoMapStore实现了一个以Java Collection为参数的loadAll方法。稍后在ReadWriteThroughCache.java代码中调用supplements.loadAll,其中补充是我迄今为止所理解的imap,它执行MongoMapStore.java中的loadAll方法,但是我们在哪里传递Collection keys参数。 mongoCollection是实例化的,但我们如何确定该示例中的键
答案 0 :(得分:0)
MapStore#loadAll(keys)
。您不需要提供任何参数,它是批量处理所有成员的分布式密钥集。请参阅详情&这里启用了持久性的地图初始化步骤:http://docs.hazelcast.org/docs/latest/manual/html-single/index.html#initializing-map-on-startup
答案 1 :(得分:0)
以下是上面提供的文档链接的摘录:
这是MapLoader初始化流程:
首次从任何成员调用getMap()时,初始化将会 根据InitialLoadMode的值启动。如果设置为 EAGER,一旦地图出现,就会在所有分区上开始初始化 触摸,即调用getMap时将加载所有分区。如果 它设置为LAZY,数据将按分区加载,即 每个分区都会在第一次触摸时加载。
Hazelcast会调用MapLoader.loadAllKeys()来获取所有密钥 其中一名成员。
该成员将批量分发给所有其他成员。
每个成员都会通过调用加载其拥有的所有密钥的值 MapLoader.loadAll(键)。
每个成员通过调用将其拥有的条目放入地图中 IMap.putTransient(键,值)。