3

我有一个由 MapStore 实现支持的简单地图。当我在地图上调用 putAll() 并传递要添加到地图的键值对地图时,Hazelcast 出于某种原因为每个值调用 MapStore 上的 store() 方法,而不是调用 storeAll() 一次。

不知道为什么会发生这种行为。hazelcast 地图是否支持 putAll/storeAll 关系?

谢谢,康拉德

4

1 回答 1

2

Hazelcast 支持不同的持久性模式,即。通读、直写和后写模式。

storeAll()像和一样的批量写入操作deleteAll()仅在后写模式下受支持。因此,在您的情况下,您需要打开write-behind模式以使用storeAll(),。

为了“打开”后写模式,您需要<write-delay-seconds>在配置 xml 中设置一个大于 0 的值。配置 <write-delay-seconds>为“x”秒意味着修改后的条目将在“x”秒后异步放入存储中.

示例配置:

<map name="employeesMap">
    <map-store enabled="true">
        <class-name>main.jdbc.EmployeeMapStore</class-name>
        <write-delay-seconds>10</write-delay-seconds>
    </map-store>
</map>

我还想向您推荐与该主题相关的好读物。

http://docs.hazelcast.org/docs/3.5/manual/html/map-persistence.html

于 2015-10-19T07:46:44.510 回答