2014-02-27 151 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)。 –