我有一个由MapStore实现支持的简单地图。 当我在地图上调用putAll()时,传递要添加到地图的键值对的映射,Hazelcast由于某种原因在MapStore上为每个值调用store()方法,而不是一次调用storeAll()。 / p>
不确定为什么会出现这种情况。是否支持hazelcast地图的putAll / storeAll关系?
谢谢, 康拉德
答案 0 :(得分:2)
Hazelcast支持不同的持久模式。通读,直写和后写模式。
仅在后写模式下支持storeAll()
和deleteAll()
等批量写入操作。因此,在您的情况下,您需要启用write-behind
模式才能使用storeAll()
。
为了打开&#34;后写模式,您需要将config xml中的<write-delay-seconds>
设置为大于0的值。将<write-delay-seconds>
配置为&#39; x&#39;秒意味着修改后的条目将在&#39; x&#39;之后异步地存储到商店。秒。
示例配置:
<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