我想知道我是否需要在所有hazelcast服务器上实现mapstore实施,还是只需要1个就可以了?
例如,我有4个hazelcast服务器。如果我在所有4台服务器中都设置了相同的mapstore,这是否意味着所有4台hazelcast服务器将对同一密钥执行相同的逻辑4次? (没有明确的文档提及此内容。)
另一种情况,如果我调用imap.put(k,v),那么所有4个hazelcast服务器会同时调用load(key)方法,还是只有1个服务器可以处理它?</ p>
答案 0 :(得分:3)
使用IMap时,将对数据进行分片并将其分发给集群成员。这些分片也可以在不同的成员中具有备份。请查看相关的章节of the docs。
因此,特定密钥将仅存储在成员之一上,因此仅触发该成员的store()实现。
这还意味着您需要在所有成员中设置MapStore实现。
答案 1 :(得分:0)
@Sertug,我明白了。但是,如果我还实现接口MapLoaderLifecycleSupport
,那么所有成员也会调用init
方法吗?我设置为*