Hazelcast 操作超时异常

Hazelcast OperationTimeoutException

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

com.hazelcast.core.OperationTimeoutException: No response for 120000 ms. Aborting invocation! Invocation{ 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, backupsExpected=0, backupsCompleted=0}

没有收到回复!预期备份:0 完成备份:0

看来 120,000 毫秒是可配置的,但我认为增加这不是答案。 当这种情况确实发生时,所有调用都会因相同的原因而失败,而不管 get 或 set 操作等。

谁能推荐应该调整哪些参数来缓解这个问题?也许这实际上是一个线程争用问题,增加事件线程等可能会有所帮助。 hazelcast 实例此时没有自定义参数。线程数都是默认的。服务器在此期间也没有进行过多的垃圾收集。

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

如果您想快速摆脱有问题的节点;您可以为以下系统设置一个较低的值 属性: "hazelcast.max.no.heartbeat.seconds" : 心跳的最大超时时间,以秒为单位,节点假设它已经死了。默认为 500 秒。