当前正在使用Hazelcast和持久性数据库作为Hbase,

到目前为止,我有10个地图,每个地图都使用一个地图存储,所以我使用10个地图存储类(即)在所有10个类中都实现了MapStore。这造成了维护的复杂性。

所以我要做的是,我保留了一个通用地图存储,并为所有地图实现了相同的类,它具有接受它的能力,为了明确起见,我做了类似的事情

Map1 - com.test.GenericMapStore
Map2 - com.test.GenericMapStore
Map3 - com.test.GenericMapStore
...
Map10 - com.test.GenericMapStore

它的映射如上所述

但是对于store,storeAll,loadAllKeys,loadAll中的方法,它可以检查对象的实例并找到mapName ---- 不是一个好方法

但是对于诸如delete,deleteAll和load之类的方法-我没有任何线索来找到mapName,

请告诉我以任何方式对所有地图使用singleMapStore?

因此,我需要一个地图存储实现,其中对于mapstore中的所有方法,我都需要传递名为mapName的PARAM。因此,如果我有通用的实现,则可以通过在所有应用中使用MAP NAME参数来使用它方法,

示例:Store(String key, Object object, String mapName),StoreAll(Map, String mapName),delete(String key, String mapName)delete(Collections keys, String mapName) ...

如果有办法,请告诉我...

谢谢hazelcast团队,您好,我们做得很好...非常感谢...

感谢致敬,
哈里

最佳答案

您应该可以使用MapStoreFactory(docs)实现此目的。
使用地图名称调用MapStoreFactory,您可以将该名称传递到GenericMapStore中。

在您的MapStoreFactory中:

public MapLoader newMapStore(mapName, props) {
    return new GenericMapStore(mapName);
}

然后在GenericMapStore中,您将获得每个操作的mapName。

10-05 19:08