我计划使用Hazelcast缓存应用程序数据。 想知道有没有办法将缓存数据序列化并存储到节点的辅助存储器中?
基本上我想在节点上的某个文件夹中序列化并存储缓存数据。因此,当我的两个节点都死亡时,最坏情况下可以恢复Web会话。
答案 0 :(得分:1)
如果实现商店加载功能(在Hazelcast的配置XML文件中添加商店加载实现类名称),将为任何地图放置/删除操作调用商店加载实现。您可以在应用程序启动时使用load all,而在数据不在缓存中时将使用load(在这种情况下,它将尝试从后端实现中获取数据)。我建议您使用数据库(任何类型),而不是推出自己的基于文件的实现。
测试地图XML文件信息:
<map name="testMap">
<backup-count>1</backup-count>
<eviction-policy>NONE</eviction-policy>
<max-size policy="cluster_wide_map_size">0</max-size>
<eviction-percentage>25</eviction-percentage>
<merge-policy>hz.ADD_NEW_ENTRY</merge-policy>
<!-- MapStore-Load-->
<map-store enabled="true">
<class-name>models.test.StoreLoadTestMap</class-name>
<write-delay-seconds>0</write-delay-seconds>
</map-store>
</map>
在您的实现类中,您需要为store,storeAll,load,loadAll,loadAllKeys,delete,deleteAll提供实现。