hazelcast 中的分区和序列化开销

partitioning and serialization overhead in hazelcast

我有一个 IMap 地图,其中 Abc class 是一个实现序列化的嵌套 class。即使没有同步和异步备份,我也会遇到内存不足异常。当我将分区数从默认的 271 减少到 3 时,它似乎工作正常并且所有条目都成功加载。 MapLoading 期间产生的分区和序列化开销是多少。

不要将分区数减少到 3,您正在通过减少并发来减慢系统速度。集群中的每个成员上都有多个分区线程,每个分区线程拥有一定数量的分区。将其减少到如此低的数量会极大地影响性能。此外,在具有 3 个集群范围分区的集群中,您不能拥有超过 3 个成员(我认为实际上可能是 2 个)。

您可以避免 OOME,因为分区对象较少,但不会持续很长时间。您需要根据所需的缓存使用情况适当调整 JVM 堆大小。

关于序列化开销,Java 序列化在负载大小和延迟方面最差。使用Hazelcast序列化,这里是link:http://docs.hazelcast.org/docs/3.10.2/manual/html-single/index.html#serialization