0

节点启动后,有没有办法在 hazelcast(3.4 版)节点上执行代码片段?

这个想法是:一旦 hazelcast 节点之一开始创建地图(不等待 .getMap 在客户端执行)并从数据库中填充数据,因此当客户端请求数据时,地图已经填充。

4

2 回答 2

2

是的。您需要MapLoader为您实现IMap,然后使用MapLoader.loadAllKeys()方法用热键初始化地图。

这就是文档所说的:

您可以使用 MapLoader.loadAllKeys API 在首次触摸/使用地图时预填充内存中的地图。如果 MapLoader.loadAllKeys 返回 NULL,则不会加载任何内容。您的 MapLoader.loadAllKeys 实现可以返回所有或部分键。例如,您可以只选择并返回热键。MapLoader.loadAllKeys 是预填充地图的最快方式,因为 Hazelcast 将通过让每个节点加载其拥有的条目部分来优化加载过程。

3.5 地图持久化文档链接

于 2016-12-27T17:34:25.177 回答
0

这可以通过在 hazelcast.xml 中定义自定义服务来解决。服务构造函数在节点启动时被调用,从那里可以请求和填充 hazelcast 地图。但是getMap的调用应该在new Thread中完成

于 2016-12-30T18:52:25.993 回答