HazelCast分发二级缓存并更新失效

时间:2017-01-17 16:24:48

标签: java hibernate jpa hazelcast second-level-cache

我正在使用hibernate 5和hazelcast 3.5.4。对于二级缓存,我使用HazelcastCacheRegionFactory,它恰好是分布式实现。

HazelcastLocalCacheRegionFactory文档明确指出,如果发生更新/删除失效消息,则会发送消息。

我在具有双节点群集二级缓存的本地网络中进行了测试。从节点读取实体后,另一个节点不访问数据库,而是从hazelcast中获取实体。但是,一旦节点更新实体,另一个节点就可以获取实体进行查询。

所以我的问题是HazelcastCacheRegionFactory是否在更新/删除时发送失效消息而不是传播更改。

谢谢。

1 个答案:

答案 0 :(得分:1)

所以我的问题是HazelcastCacheRegionFactory是否发送了失效 更新/删除消息而不是传播更改。

不,它不会,传播更改,如documentation

中所述
  

HazelcastCacheRegionFactory使用标准Hazelcast分布式   地图。将执行所有操作,例如getputremove   使用分布式映射逻辑。使用的唯一缺点   HazelcastCacheRegionFactory可能是性能较低的   HazelcastLocalCacheRegionFactory因为操作被处理为   分布式电话。

我认为分布式Hibernate L2缓存的负面性能影响在上述文档中没有得到足够的重视,因为在实践中它可以如此之大以至于直接从db读取数据更快,正如我解释的那样{{ 3}}