加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 从Hazelcast 2.5到3的性能下降升级

发布时间:2020-12-15 00:33:43 所属栏目:Java 来源:网络整理
导读:由于Hazelcast 2.5中已知(固定)的错误,我们已经确定这将是我们项目的下一个升级候选者.但是在放入最新版本(3.2.2)后,我们的表现非常糟糕. 我们使用Hazelcast的方式: 两个节点 多个IMap实例(总共约7个地图) 两个节点都会更新地图 地图上有很多内容 启用近缓
由于Hazelcast 2.5中已知(固定)的错误,我们已经确定这将是我们项目的下一个升级候选者.但是在放入最新版本(3.2.2)后,我们的表现非常糟糕.

我们使用Hazelcast的方式:

>两个节点
>多个IMap实例(总共约7个地图)
>两个节点都会更新地图
>地图上有很多内容
>启用近缓存以加快读取速度

使用Hazelcast 2.5时,我们提供了很好的性能,而不是使用map.values(),我们提供了所有包含的键map.getAll(containedKeys)的列表.我们通过向地图添加EntryListener来跟踪containsKeys的方式,该地图将containsKeys存储在并发集中.这是由一位同事添加的,感觉就像一个黑客,但工作就像一个魅力.

现在,当我们升级到Hazelcast 3.2.2时,我们会立即看到java.io的问题,例如,请查看AppDynamics的以下代码片段:

com.hazelcast.map.proxy.MapProxyImpl:getAll:326 (method time = 0 ms,total time = 18938 ms)
 com.hazelcast.map.proxy.MapProxySupport:getAllObjectInternal:495 (method time = 0 ms,total time = 18938 ms)
  com.hazelcast.map.MapService:toObject:852 (method time = 0 ms,total time = 18938 ms)
   com.hazelcast.spi.impl.NodeEngineImpl:toObject:156 (method time = 0 ms,total time = 18938 ms)
    com.hazelcast.nio.serialization.SerializationServiceImpl:toObject:221 (method time = 0 ms,total time = 18938 ms)
     com.hazelcast.nio.serialization.StreamSerializerAdapter:read:59 (method time = 0 ms,total time = 18938 ms)
      com.hazelcast.nio.serialization.DefaultSerializers$ObjectSerializer:read:185 (method time = 0 ms,total time = 18938 ms)
       java.io.ObjectInputStream:readObject:370 (method time = 3398 ms,total time = 18938 ms)
        java.io.ObjectInputStream:readObject:370 (method time = 15540 ms,total time = 15540 ms)

这是我们在Hazelcast 2.5中没有看到的,但在3.2.2中有.它使我们的应用程序彻底停顿.再次用2.5替换jar(并将Entry重命名为MapEntry)并没有错.

可能是什么导致了这个?也许它不再使用近缓存了?

解决方法

你看过这个谷歌团体票的问题吗?

https://groups.google.com/forum/#!topic/hazelcast/ivk6hzk2YwA

这里特别说明了问题的原因.

https://github.com/hazelcast/hazelcast/issues/553

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读