从版本3.X开始,Hazelcast返回原始对象的副本,该副本存储在启用了近缓存的分布式地图中,而不是返回原始对象的版本2.5。
此行为允许对映射中存储的条目进行本地修改,并且GET操作很快。
现在,对于版本3.X,它将二进制对象存储在近缓存中,并且它会导致每个GET上的反序列化,这会显着影响性能。 是否可以配置Hazelcast 3.4.2 Map的Near Cache以返回对原始对象的引用,而不是原始条目的副本?
答案 0 :(得分:3)
在<near-cache>
部分,如果您设置了
<in-memory-format>OBJECT</in-memory-format>
<cache-local-entries>true</cache-local-entries>
您应该返回相同的实例。
这适用于客户和会员。
答案 1 :(得分:1)
我认为没有办法获得原始物品。 为避免反序列化,您可以尝试设置
<in-memory-format>OBJECT</in-memory-format>
<near-cache>
配置中的。这样,hazelcast将以对象形式将数据存储在<near-cache>
中,并且不需要反序列化。但我想这只有在客户端配置<near-cahce>
时才会起作用,因为如果节点上有<near-cache>
,你仍然需要序列化才能将对象从节点传递给客户端。