Hazelcast 3.4:如何避免从近缓存反序列化并获取原始项目

Hazelcast 3.4: how to avoid deserialization from near cache and get original item

从版本 3.X 开始,Hazelcast return 原始对象的副本存储在启用了近缓存的分布式地图中,而不是原始对象是 returned.

此行为允许对映射中存储的条目进行本地修改,并且 GET 操作速度很快。

现在,在 3.X 版本中,它会将二进制对象存储在近缓存中,并且会在每次 GET 时导致反序列化,从而显着影响性能。 是否可以将 Hazelcast 3.4.2 地图的近缓存配置为 return 对原始对象的引用,而不是原始条目的副本?

我认为没有办法获得原始物品。 为避免反序列化,您可以尝试设置

<in-memory-format>OBJECT</in-memory-format> 

<near-cache> 配置中。这样,hazelcast 将以对象形式将数据存储在 <near-cache> 中,并且不需要反序列化。但我想这只有在客户端配置 <near-cahce> 时才有效,因为如果 <near-cache> 在节点上,你仍然需要序列化才能将对象从节点传递到客户端。

<near-cache> 部分,如果您设置

  • <in-memory-format>OBJECT</in-memory-format>
  • <cache-local-entries>true</cache-local-entries>

您应该返回相同的实例。

这对客户和会员都有效。