Hazelcast操作超时异常

Hazelcast操作超时异常,hazelcast,Hazelcast,我需要帮助正确诊断com.hazelcast.core.OperationTimeoutException com.hazelcast.core.OperationTimeoutException: 120000毫秒无响应。正在中止调用! 调用{serviceName='hz:impl:mapService',op=GetOperation{TRADES},partitionId=87,replicaIndex=0,tryCount=250,tryPauseMillis=500,invoke C

我需要帮助正确诊断com.hazelcast.core.OperationTimeoutException

com.hazelcast.core.OperationTimeoutException: 120000毫秒无响应。正在中止调用! 调用{serviceName='hz:impl:mapService',op=GetOperation{TRADES},partitionId=87,replicaIndex=0,tryCount=250,tryPauseMillis=500,invoke Count=1,callTimeout=60000,target=Address[10.32.21.170]:17326,backupexpected=0,backupcompleted=0}

没有收到任何回应!需要备份:0已完成备份:0

看起来120000ms是可配置的,但我不认为增加这个是答案。 当这种情况发生时,无论get或set操作如何,所有调用都会因相同的原因失败


有谁能提出建议,说明应该调整哪些参数来缓解这一问题?也许这实际上是一个线程争用问题,增加事件线程或诸如此类的事件可能会有所帮助。hazelcast实例目前没有自定义参数。线程计数都是默认值。服务器在此期间也没有进行过多的垃圾收集。

此异常最可能的原因是群集成员之间的网络问题。无响应节点(由于内存或GC问题等)也可能导致此类问题。首先,可以确保网络环境的质量/性能。如果您使用的是AWS,则可以选择网络性能更好的实例

如果您想快速摆脱有问题的节点;可以为以下系统属性设置较低的值:
“hazelcast.max.no.heartbeat.seconds”:节点假定其已死亡时心跳的最大超时(以秒为单位)。默认值为500秒。

p.S.我无法轻松复制此问题,否则会包含线程转储。对此很抱歉。在我的情况下,节点没有死,我怀疑网络断开,因为它们位于本地VM环境中的同一物理硬件上。我会调查这件事以确定。如果我希望这些调用只是重试,是否可以通过增加时间和一些尝试计数参数来增加hazelcast将尝试的尝试?例如:tryCount=250这是否意味着它确实尝试了250次,或者如果120000ms没有首先命中,它会尝试吗?或者调用计数=1,这是否意味着实际只发生了1次尝试。再次感谢您的帮助。是的,重试次数有硬编码限制,250次。抱歉,没有API可以改变这一点。但如果允许将其设置为无穷大;然后任何有问题的节点都会导致集群无限挂起。谢谢。我将看看可以做些什么来提高集群性能。