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

Hazelcast-OperationTimeoutException

高飞翮
2023-03-14

我使用的是Hazelcast版本3.3.1。
我有一个使用C3.2xLarge服务器在aws上运行的9节点群集。
我使用的是分布式执行器服务和分布式映射。
分布式执行器服务使用一个线程。Distributed map配置为无复制和无近缓存,并使用Kryo序列化器存储大约100万个1-2KB大小的对象。
我的用例如下:

  • 所有9个节点都在分布式执行器服务上持续执行同步远程操作,每秒生成大约20k次命中(每个节点大约2k)。
  • 使用Hazelcast API执行调用:com.Hazelcast.core.IExecutorService#ExecuteOnKeyOwner。
  • 每个操作访问拥有分区的节点上的分布式映射,使用存储的对象进行一些计算,并将对象存储到映射中。(为此,我使用IMap对象的get和set API)。

每隔一段时间,Hazelcast都会遇到超时异常,例如:
com.Hazelcast.core.OperationTimeoutException:120000 ms没有响应。正在中止调用!BasicInvocationFuture{Invocation=BasicInvocation{ServiceName='Hz:Impl:MapService“,OP=GetOperation{},PartitionID=212,ReplicaIndex=0,TryCount=250,TrypauseMillis=500,InvokeCount=1,CallTimeout=60000,Target=Address[172.31.44.2]:5701,BackupsExpected=0,BackupsCompleted=0},response=Null,DoNe=False}未收到响应!备份-预期:0备份-已完成:0

在某些情况下,我看到映射分区开始迁移,这使情况变得更糟,节点不断地离开并重新加入集群,克服这个问题的唯一方法是重新启动整个集群。

我想知道是什么原因导致Hazelcast在120秒内阻止Map-Get操作?
我很确定这与网络无关,因为相同服务器上的其他服务运行正常。还要注意,服务器大部分是空闲的(~70%)。

对我的用例的任何反馈都将受到高度赞赏。

共有1个答案

雷方伟
2023-03-14

你为什么不使用一个入口处理器呢?这也是发送到正确的机器拥有的分区和加载,修改,存储是自动和原子完成。所以没有种族问题。它的性能可能会大大超过当前的方法,因为它涉及的远程处理较少。

map.get在120秒内没有返回这一事实确实非常令人困惑。如果您切换到Hazelcast3.5,我们使用慢速操作检测器(执行端)和慢速调用检测器(调用端)为其添加了一些日志记录/调试内容,应该可以让您了解正在发生的事情。

是否看到正在打印任何运行状况监视器日志?

 类似资料:
  • 我在我的应用程序中使用Hazelcast IMDG。 我听说Hazelcast Jet比Hazelcast IMDG提供更快的数据处理。 Hazelcast Jet提供了所有可用的功能Hazelcast IMDG?

  • Hazelcast 是一个分布式内存数据存储和计算平台,具有容错性且易于扩展或缩减。 作为内存数据存储,Hazelcast 通过将数据存储在内存中,让您可以更快地访问数据。有了更多可访问的数据,您可以利用 Hazelcast 以始终​​如一的低延迟处理大量实时事件或静态数据集。 为了帮助你利用所有这些功能,Hazelcast 带有以下内置数据结构: 分布式、分区和可查询的内存键值存储实现,称为 I

  • 使用hazelcast 3.8中的ScheduledExecutorService,我遇到了内存不足异常。问题是我正在做一项服务,它应该提醒用户一天中的一些事件。任务的执行应该是容错的。用户设置新的提醒,这是ScheduledExecutorService的一项任务,因此每天的任务量可以达到数千。每个任务都使用schedule(可运行命令、长延迟、时间单位)作为一次性操作添加到scheduler中

  • 如果Hazelcast位于类路径上并找到合适的配置,则Spring Boot会自动配置您可以在应用程序中注入的HazelcastInstance。 如果定义com.hazelcast.config.Config bean,Spring Boot会使用它。 如果您的配置定义了实例名称,Spring Boot会尝试查找现有实例,而不是创建新实例。 您还可以指定要通过配置使用的hazelcast.xml

  • 翻译:Ranger Tsao,校对 宋子豪、赵亮 HazelcastClusterManager 是基于 Hazelcast 实现 ,是Vert.x 中集群管理器中的默认实现。由于 Vert.x 集群管理的可插拔性,也可轻易切换至其它的集群管理器。 Maven(pom.xml) <dependency> <groupId>io.vertx</groupId> <artifactId>ver

  • Hazelcast Jet 是一个分布式计算平台,专为高性能流处理和快速批处理而构建。它在内存数据网格(IMDG)中嵌入Hazelcast,以提供轻量级的处理器包和可扩展的内存存储。 特性: 低延迟和分布式的通用数据处理框架,具有高吞吐量 高并行和分布式的数据流和批处理 分布式  java.util.stream API 支持 Hazelcast 数据结构,如 IMap 和 IList 连接器允许