我在两台服务器上有一个hazelcast集群,每台服务器上有两个节点。 我正在使用hazelcast jar,因此每次服务器重新启动时,每个服务器上的节点都会重新启动。每当两台服务器发生部署时,它们都会以30秒的差异重新启动。 我有一个特定的实例,每次应用程序请求一个特定的数据时,抛出此异常。 我正在使用MultiMap来缓存数据。
Caused by: com.hazelcast.spi.exception.PartitionMigratingException: Partition is migrating! this:Address[app01]:5701, partitionId: 0, operation: com.hazelcast.map.impl.operation.PutOperation, service: hz:impl:mapService
at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.ensureNoPartitionProblems(BasicOperationService.java:833)
at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.handle(BasicOperationService.java:741)
at com.hazelcast.spi.impl.BasicOperationService$OperationHandler.access$500(BasicOperationService.java:725)
at com.hazelcast.spi.impl.BasicOperationService$BasicDispatcherImpl.dispatch(BasicOperationService.java:576)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.process(BasicOperationScheduler.java:466)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.doRun(BasicOperationScheduler.java:458)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.run(BasicOperationScheduler.java:432)
我在异常后看到其中的几个。
2015-04-10 14:51:03,403 WARN com.hazelcast.spi.impl.BasicInvocation - [app01]:5701 [dev] [3.4.2] Retrying invocation: BasicInvocation{ serviceName='hz:impl:mapService', op=PutOperation{alert-coms}, partitionId=0, replicaIndex=0, tryCount=250, tryPauseMillis=500, invokeCount=100, callTimeout=60000, target=Address[app01]:5701, backupsExpected=0, backupsCompleted=0}, Reason: com.hazelcast.spi.exception.PartitionMigratingException: Partition is migrating! this:Address[app01]:5701, partitionId: 0, operation: com.hazelcast.map.impl.operation.PutOperation, service: hz:impl:mapService
我知道它正在重试与抛出异常相同的操作,但问题是分区迁移在整个周末都没有完成,直到我重新启动服务器。
请帮助我理解为什么会发生这种情况以及可以采取哪些措施来防止这种情况发生。
感谢。
答案 0 :(得分:2)
您不会说出您使用的是哪个版本。我们知道分区迁移的一些问题。在3.7中,我们从头开始完全重写了分区迁移方案。
所以试试3.7。