2014-02-27 113 views

回答

-1

Hazelcast内部并非真正设计为可修改的。你想修改什么?

+0

最大缓存大小 –

+0

是的,我还发现它很有用,能够在运行时修改最大缓存大小。 – Jack

+0

你可以为它做一个github的问题,所以我们可以跟踪它。 如果您检查com.hazelcast.management包中的代码,尤其是UpdateMapConfigOperation,那么您将看到如何完成该操作。 我认为通过JMX公开这将是一件好事。 – pveentjer

0

可能是有点晚了回答你的问题,但总比没有好:)晚

地图已经使用地图服务创建后,您可以修改一些地图配置属性:

HazelcastInstance instance = Hazelcast.newHazelcastInstance(); 

// create map 
IMap<String, Integer> myMap = instance.getMap("myMap"); 

// create a new map config 
MapConfig newMapConfig = instance.getConfig().getMapConfig("myMap").setAsyncBackupCount(1); 

// submit the new map config to the map service 
MapService mapService = (MapService)(((AbstractDistributedObject)instance.getDistributedObject(MapService.SERVICE_NAME, "")).getService()); 
mapService.getMapServiceContext().getMapContainer("myMap").setMapConfig(newMapConfig); 

请注意,此API不可见/记录,因此可能无法在将来的版本中使用。

当我们需要在启动时在分布式映射中插入数百万条目时,我们正在使用它。禁用备份可将插入时间缩短30%。数据插入后,我们启用备份。

+0

不幸的是,它不会影响次要版本(例如3.4.x)中的近似缓存和不同行为的配置。官方回复表格hazelcast的人认为,动态配置更改不受支持,他们不会投入时间来添加此功能(sadpanda)。 –