当前位置: 首页 > 知识库问答 >
问题:

正在初始化群集分区表排列。。。在Hazelcast中,3.9.1花费的时间太长

鞠通
2023-03-14

我试图创建一个Hazelcast服务项目,其中我将订阅一个RDBMS(Oracle DB 12c)数据存储,使用反射动态创建一个POJO/JavaBean,然后解析JavaBean对象以映射JDBC ResultSet作为结果行值放入JavaBean对象,并将这些映射对象加载到分布式映射中。

我检查了两个表的数据量,我试图从这两个表加载在Hazelcast IMap中,它低至0.0625和0.0316 MB。因此,这是一个更简单的Hazelcast实现,只需在localhost上初始化两个并行实例/节点。

我在Java Main方法中计时从创建Java POJO类到在Hazelcast IMAP中创建和加载每个相应对象的那一刻起的总运行时间。

据我所知,从系统的角度来看,这花费的时间太长,因为我们甚至在测试和生产箱中看到类似的行为,系统规格比下面给出的要好3到4倍。请帮助提供建议,说明有什么问题,或者这是第一次在hazelcast IMDG中使用集群中的2个节点进行分区时的常见情况。

系统规格如下:

Macbook Pro 2014处理器:2.6 GHz Intel Core i5内存:8 GB 1600 MHz DDR3

请查找日志。。。

2018年2月26日上午10:30:39。黑泽尔卡斯特。内部的隔断impl。PartitionStateManager信息:[xx.xxx.xx.xxx]:5702[dev][3.9.1]正在初始化群集分区表排列。。。userMaster映射中的条目数:883

用户主地图中的条目数:7499

持续时间约为: 92520毫秒Feb26, 2018 10:32:10AMcom.hazelcast.core.生命周期服务信息:[xx.xxx.xx.xxx]: 5701[dev][3.9.1][xx.xxx.xx.xxx]: 5701SHUTTING_DOWN

共有1个答案

公羊学义
2023-03-14

虽然我无法修复MapLoader问题,但ResultSetsetFetchSize()的主要问题仍然存在。这被设置为10,这导致网络i/o过高。一旦我增加到1000或更多,它就会变得更快。

日志:

使用常规FetchSize():preparedStatement。getFetchSize():2018年2月28日10:24:51 PM com。黑泽尔卡斯特。内部的隔断impl。PartitionStateManager信息:[xx.xxx.xx.xx]:5702[dev][3.9.1]正在初始化群集分区表排列。。。

userMaster映射中的条目数:26464

持续时间约为:276178毫秒

使用更大的FetchSize():

tatement.getFetchsize(): 1000 Feb28, 2018 7:31:06PMcom.hazelcast.internal.partition.impl.分区StateManager INFO:[xx.xxx.xx.xx]: 5702[dev][3.9.1]初始化集群分区表安排...在用户主地图: 26464

持续时间约为:11279毫秒

我肯定会发布服务器和客户端版本的代码,以帮助使用MapLoader,这听起来是最好的方法。

作为进一步的帮助,您是否可以提供一些信息,说明扩展的Mapload/Mapstore技术是否可以为运行时创建的对象/类编写,因为我单独尝试的较小示例是使用固定JavaBean的。

我记得留档提到了MapStoreFactory()选项。这会有帮助吗?

 类似资料:
  • 我正在尝试创建一个Hazelcast服务项目,在该项目中,我将订阅一个RDBMS(Oracle DB12C)数据存储,使用反射动态创建一个POJO/Java Bean,然后解析该Java Bean对象,将JDBC ResultSet作为结果行值映射到Java Bean对象中,并将这些映射对象加载到分布式映射中。 我检查了试图加载到Hazelcast IMap中的两个表的数据量,发现它们的数据量低至

  • 我很担心,因为我在启动Hazelcast实例后会得到以下跟踪日志: 使用最新版本的Hazelcast 3.7进行测试,但使用3.6进行测试,并在多播环境中使用默认的Hazelcast配置 到底是什么意思?这是有问题的征兆? 谢谢你

  • 我有一个配置类,它存储在hz IMap 这个配置类是1-st实例成员 P. S成员是两个不同的应用程序的一部分。 此配置作为对象从第一个集群成员推送到IMap 我的目标是在另一个模块中看到这个配置 如何在第二个成员实例中序列化该对象 如果调用 我得到了

  • 我的设置:运行在boot2docker vm中的Hazelcast docker容器(托管在windows上,是的,端口5701被转发)。这是榛子3.4.2。 当我尝试将一个简单的java客户端连接到这个hazelcast实例时,我得到一个: 总而言之:客户机似乎看到了集群及其成员,但接下来发生的事情阻止了连接按预期工作。 知道吗?

  • 我们有一个应用程序,每秒向 ES 集群添加数千个文档。每次滚动更新要写入的索引并开始写入新索引时,都会收到以下错误,这些错误不允许在大约 1 分钟内引入文档。在那 1 分钟之后,一切都恢复正常,直到我们再次滚动索引。 在第一行中,我在末尾加了省略号,因为它实际上相当大,这里是我们看到的图像(如图所示,行突然结束): 你知道这些错误消息是关于什么的吗? 我们是否可能因为集群状态太大而看到这些消息?这

  • 我想在arraylist中传递值,并且初始化良好。但有一个错误- 线程“main”java.lang.IndexOutOfBoundsException:索引:3,大小:0 我正在努力,这是我的代码-