要在hazelcast中存储在IMap中以进行缓存的数据存储在hazelcast服务器中或运行hazelcast实例的位置?

姆里杜尔·德卡

我编写了用于缓存的hazelcast缓存framewrok,并编写了一个用于通过构造函数注入进行缓存的专用hazelcast服务器。只想知道IMap对象存储在哪里?它是在我的hazelcast服务器中还是在运行此类的应用程序中?

public String hazelClientServer;
public static HazelcastInstance hazelcastInstance;

// setting through constructor injection
public HazelCastCache(String hazelClientServer) {
    this.hazelClientServer = hazelClientServer;
}



private IMap<Object, Object> getMap(String mapName,String configName){

    Config conf = new Config(configName);

    MapConfig mapConfig = new MapConfig(mapName);
    mapConfig.setEvictionPolicy(EvictionPolicy.LRU);
    mapConfig.setEvictionPercentage(10);
    conf.addMapConfig(mapConfig);
    conf.getNetworkConfig().setPublicAddress(hazelClientServer);
    hazelcastInstance = Hazelcast.getOrCreateHazelcastInstance(conf);
    IMap<Object, Object> hazelMap=hazelcastInstance.getMap(mapName);
    return hazelMap;
}

public Object getDataFromCache(String mapName,String configName,Object key){

    IMap<Object, Object> dataMap = getMap(mapName,configName);
    Object data = dataMap.get(key);
    return data;

}

public void addDataToCache(String mapName,String configName,Object key,Object value){

    IMap<Object, Object> dataMap = getMap(mapName,configName);
    dataMap.put(key, value);

}
AK德赛

这取决于您启动集群的方式。

这是文档指出的内容:

在嵌入式拓扑中,成员包括数据和应用程序。如果您的应用程序专注于高性能计算和许多任务执行,则这种类型的拓扑最有用。由于应用程序靠近数据,因此此拓扑支持数据局部性。

在客户端-服务器拓扑中,您​​将创建成员集群并独立扩展集群。您的应用程序托管在客户端上,并且客户端与群集中的成员进行通信以获取数据。

通过查看代码,您将以嵌入式模式启动集群/节点,在这种情况下,数据驻留在应用程序服务器本身中因此,您还需要考虑缓存大小,以便为应用程序容器分配内存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档