MapStore 实现
MapStore implemenation
我想知道我是否需要在所有 hazelcast 服务器上实施 mapstore 还是仅 1 个就足够了?
例如,我有 4 个 hazelcast 服务器。如果我在所有 4 个服务器中设置相同的 mapstore,这是否意味着所有 4 个 hazelcast 服务器将对相同的密钥执行相同的逻辑 4 次? (没有明确的文档提到这一点)。
另一种情况,如果我调用imap.put(k,v),所有4个hazelcast服务器会同时调用load(key)方法还是只有一个服务器会处理它?
使用 IMap 时,您的数据会被分片并分发给集群成员。这些分片也可以在不同的成员中有备份。请查看相关部分 of the docs.
所以一个特定的键将只存储在一个成员上,因此只会触发该成员的 store() 实现。
这也意味着您需要在所有成员中设置 MapStore 实现。
@Sertug,我明白你的意思了。但是如果我也实现了接口 MapLoaderLifecycleSupport
那么 init
方法是否也会被所有成员调用呢?地图店名我设置为*
我想知道我是否需要在所有 hazelcast 服务器上实施 mapstore 还是仅 1 个就足够了?
例如,我有 4 个 hazelcast 服务器。如果我在所有 4 个服务器中设置相同的 mapstore,这是否意味着所有 4 个 hazelcast 服务器将对相同的密钥执行相同的逻辑 4 次? (没有明确的文档提到这一点)。
另一种情况,如果我调用imap.put(k,v),所有4个hazelcast服务器会同时调用load(key)方法还是只有一个服务器会处理它?
使用 IMap 时,您的数据会被分片并分发给集群成员。这些分片也可以在不同的成员中有备份。请查看相关部分 of the docs.
所以一个特定的键将只存储在一个成员上,因此只会触发该成员的 store() 实现。
这也意味着您需要在所有成员中设置 MapStore 实现。
@Sertug,我明白你的意思了。但是如果我也实现了接口 MapLoaderLifecycleSupport
那么 init
方法是否也会被所有成员调用呢?地图店名我设置为*