是否可以序列化缓存数据并将其存储在辅助内存中,即以某种形式存储在Hazelcast节点上的某个文件夹/文件系统中?

是否可以序列化缓存数据并将其存储在辅助内存中,即以某种形式存储在Hazelcast节点上的某个文件夹/文件系统中?,hazelcast,Hazelcast,我计划使用Hazelcast缓存应用程序数据。 想知道是否有一种方法可以序列化缓存数据并将其存储到节点的辅助内存中 基本上,我希望序列化缓存数据并将其存储在节点上的某个文件夹中。这样,在最坏的情况下,当我的两个节点都死掉时,就有可能恢复web会话。如果实现存储加载功能(在Hazelcast的配置XML文件中添加存储加载实现类名),则存储加载实现将被调用用于任何映射放置/删除操作。您可以在应用程序启动时使用load all,而load将在数据不在缓存中的情况下使用(在这种情况下,它将尝试从后端实现

我计划使用Hazelcast缓存应用程序数据。 想知道是否有一种方法可以序列化缓存数据并将其存储到节点的辅助内存中


基本上,我希望序列化缓存数据并将其存储在节点上的某个文件夹中。这样,在最坏的情况下,当我的两个节点都死掉时,就有可能恢复web会话。

如果实现存储加载功能(在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>

1.
没有一个
0
25
hz.ADD_新条目
models.test.StoreLoadTestMap
0

在您的实现类中,您需要提供store、storeAll、load、loadAll、loadAllKeys、delete、deleteAll的实现

您可以-您需要实现存储加载功能。为什么您不使用某种数据库来实现这一点,而不是自己写入文件?您可以分享一些关于使用存储加载功能将缓存的web会话数据存储到文件系统中的更多信息或链接吗。我的应用程序本身没有数据库,所以我不希望数据库仅仅用于存储缓存的web会话。您必须将数据保存在某个位置—文件或数据库。写入文件可能不太可靠,并且需要更长的开发时间(根据您的应用程序,如果需要,您可以使用轻量级数据库)。hazelcast文档中提供了存储加载实现。您需要在hazelcast xml文件中指定类名,并实际实现该类中的所有回调(在xml文件中指定),这对于像我这样的初学者来说是非常好的信息。。我尝试用一个POC将其存储在文件中。它工作得很好。但我必须在hazelcast节点中添加类文件,以便在我的POC中序列化和存储“Student”对象。所以我的问题是-是否可以不在节点上设置类,因为我想避免在每个节点上更新代码,即在每个服务器上,我的节点出现在每个服务器上,只是为了类定义的每次更改,例如,如果在Student中添加了新字段等等…?您实现了您的类-使其可序列化-自定义或默认,指定包含hazelcast xml文件中相关对象的映射,并指定复制因子-hazelcast将负责为映射分发数据(分发和复制不同)。当您需要访问地图时,您可以使用hazelcast来检索地图(hazelcast将从包含地图数据的任何节点检索地图)-如果确实需要,您可以使用本地缓存,尽管我建议您避免在此时使用本地缓存,因为这会使您的实现复杂化。我想我把您弄糊涂了,让我重新阐述我的问题。假设我的应用程序(客户端应用程序)确实有学生实体,并且我已经配置了节点。在这种情况下,为了在文件系统/DB上保持状态,我必须在节点上也有Student.class。我不想在节点端的Student中的每个修改上都有或更新类。可能吗?