Hazelcast 阻塞监听器直到加载缓存

Hazelcast Block listener till cache is loaded

我是 hazecast 的新手,目前我正在维护一个系统,在该系统中我有 2 个缓存 [基本上在单个实例中有 2 个地图] 缓存 1 和缓存 2。

当我的 Hazelcast 服务器出现时,一旦加载 Cache2,就会触发侦听器。但是缓存 1 尚未加载,侦听器也尝试从缓存 1 读取,这是业务需求。

我有没有办法确定是否在侦听器触发时加载了 Cache1 或阻止触发直到也加载了 cache1。

不,无法检查地图是否已加载,也无法根据 MapA 的加载来阻止 MapB 上侦听器的触发。这是两个独立的数据结构。

你可以尝试将MapA的InitialLoadingMode设置为lazy,这样当记录被touch时只加载被touched的分区。这比完全加载地图要快。

您还可以在 MapA 上调用 loadAll - 这是一个阻塞调用,因此只有在地图加载后才会 return。然后你开始玩 MapB - 在这个阶段 100% 确定听众不会阻塞。