当任何 Hazelcast 成员出现故障时,Hazelcast 会强制调用 loadAll() 方法
Hazelcast forcefully call loadAll() method when any of the Hazelcast member goes down
我已经使用 MapLoader
和 loadAll
关键功能实现了通读,它在地图初始化期间将特定的键和值列表从数据库加载到 Hazelcast 地图。我的问题是,如果某些成员出现故障,我需要相应地重新填充这些键和值。这是因为我们正在积极使用 Hazelcast 谓词来搜索相关数据(而不是通过键),但是如果其中一个成员出现故障,我们很可能无法从缓存中获得实际结果。
据我所知,Hazelcast 也不会创建任何配置为 MapLoader
的数据备份。我能想到的唯一选择是一旦任何成员出现故障,就强制调用 MapLoader
的 loadAll
函数。但不太确定如何实施。我也愿意接受其他建议。
As far as I know Hazelcast will also not create any backup of data which are configured with MapLoader.
我不确定是什么让你相信这一点。 Backups 和 MapLoader 是地图上的两个独立配置设置,您可以单独配置它们。因此,除非您配置了零备份,否则即使由 MapLoader
.
加载,您也将拥有数据备份
有关详细信息,请参阅文档中的 Making Your Map Data Safe 部分。
如果您想使用 MapLoader 重新加载 数据,您可以对所有数据使用 com.hazelcast.map.IMap#loadAll(boolean)
或对特定键集使用 com.hazelcast.map.IMap#loadAll(java.util.Set<K>, boolean)
。
我已经使用 MapLoader
和 loadAll
关键功能实现了通读,它在地图初始化期间将特定的键和值列表从数据库加载到 Hazelcast 地图。我的问题是,如果某些成员出现故障,我需要相应地重新填充这些键和值。这是因为我们正在积极使用 Hazelcast 谓词来搜索相关数据(而不是通过键),但是如果其中一个成员出现故障,我们很可能无法从缓存中获得实际结果。
据我所知,Hazelcast 也不会创建任何配置为 MapLoader
的数据备份。我能想到的唯一选择是一旦任何成员出现故障,就强制调用 MapLoader
的 loadAll
函数。但不太确定如何实施。我也愿意接受其他建议。
As far as I know Hazelcast will also not create any backup of data which are configured with MapLoader.
我不确定是什么让你相信这一点。 Backups 和 MapLoader 是地图上的两个独立配置设置,您可以单独配置它们。因此,除非您配置了零备份,否则即使由 MapLoader
.
有关详细信息,请参阅文档中的 Making Your Map Data Safe 部分。
如果您想使用 MapLoader 重新加载 数据,您可以对所有数据使用 com.hazelcast.map.IMap#loadAll(boolean)
或对特定键集使用 com.hazelcast.map.IMap#loadAll(java.util.Set<K>, boolean)
。