Hazelcast : Исключение IllegalArgumentException: Целью является этот узел

#java #spring-boot #kubernetes #openshift #hazelcast

Вопрос:

Я запускаю два экземпляра приложения spring boot на openshift, и оба они присоединены к кластеру hazelcast. Тем не менее, я постоянно вижу сообщение об ошибке ниже в журналах.

 {"timestamp":"2021-06-01T20:29:48.775 10:00","app":"my-protected-application","logLevel":"INFO","thread":"hz.peaceful_pike.priority-generic-operation.thread-0","eventSource":"com.hazelcast.internal.cluster.impl.operations.SplitBrainMergeValidationOp","message":"[10.1.28.31]:5701 [spring-session-cluster] [4.2] Removing null, since it thinks it's already split from this cluster and looking to merge."}
{"timestamp":"2021-06-01T20:29:48.776 10:00","app":"my-protected-application","logLevel":"ERROR","thread":"hz.peaceful_pike.priority-generic-operation.thread-0","eventSource":"com.hazelcast.internal.cluster.impl.operations.SplitBrainMergeValidationOp","message":"[10.1.28.31]:5701 [spring-session-cluster] [4.2] Target is this node! -> [10.1.28.31]:5701","stack_trace":"<#d3566be0> j.l.IllegalArgumentException: Target is this node! -> [10.1.28.31]:5701ntat c.h.s.i.o.i.OutboundResponseHandler.checkTarget(OutboundResponseHandler.java:226)ntat c.h.s.i.o.i.OutboundResponseHandler.sendNormalResponse(OutboundResponseHandler.java:125)ntat c.h.s.i.o.i.OutboundResponseHandler.sendResponse(OutboundResponseHandler.java:88)ntat c.h.s.i.o.Operation.sendResponse(Operation.java:475)ntat c.h.s.i.o.i.OperationRunnerImpl.call(OperationRunnerImpl.java:282)ntat c.h.s.i.o.i.OperationRunnerImpl.run(OperationRunnerImpl.java:248)ntat c.h.s.i.o.i.OperationRunnerImpl.run(OperationRunnerImpl.java:469)ntat c.h.s.i.o.i.OperationThread.process(OperationThread.java:197)ntat c.h.s.i.o.i.OperationThread.process(OperationThread.java:137)ntat c.h.s.i.o.i.OperationThread.executeRun(OperationThread.java:123)ntat c.h.i.u.e.HazelcastManagedThread.run(HazelcastManagedThread.java:102)n"}
{"timestamp":"2021-06-01T20:29:48.776 10:00","app":"my-protected-application","logLevel":"WARN","thread":"hz.peaceful_pike.priority-generic-operation.thread-0","eventSource":"com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl","message":"[10.1.28.31]:5701 [spring-session-cluster] [4.2] While sending op error... op: com.hazelcast.internal.cluster.impl.operations.SplitBrainMergeValidationOp{serviceName='hz:core:clusterService', identityHash=127643227, partitionId=-1, replicaIndex=0, callId=1046044, invocationTime=1622543389369 (2021-06-01 20:29:49.369), waitTimeout=-1, callTimeout=60000, tenantControl=com.hazelcast.spi.impl.tenantcontrol.NoopTenantControl@0}, error: java.lang.IllegalArgumentException: Target is this node! -> [10.1.28.31]:5701","stack_trace":"<#dbcc9949> j.l.IllegalArgumentException: Target is this node! -> [10.1.28.31]:5701, response: ErrorResponse{callId=1046044, urgent=true, cause=java.lang.IllegalArgumentException: Target is this node! -> [10.1.28.31]:5701}ntat c.h.s.i.o.i.OutboundResponseHandler.send(OutboundResponseHandler.java:113)ntat c.h.s.i.o.i.OutboundResponseHandler.sendResponse(OutboundResponseHandler.java:96)ntat c.h.s.i.o.Operation.sendResponse(Operation.java:475)ntat c.h.s.i.o.i.OperationRunnerImpl.sendResponseAfterOperationError(OperationRunnerImpl.java:425)ntat c.h.s.i.o.i.OperationRunnerImpl.handleOperationError(OperationRunnerImpl.java:419)ntat c.h.s.i.o.i.OperationRunnerImpl.run(OperationRunnerImpl.java:253)ntat c.h.s.i.o.i.OperationRunnerImpl.run(OperationRunnerImpl.java:469)ntat c.h.s.i.o.i.OperationThread.process(OperationThread.java:197)ntat c.h.s.i.o.i.OperationThread.process(OperationThread.java:137)ntat c.h.s.i.o.i.OperationThread.executeRun(OperationThread.java:123)ntat c.h.i.u.e.HazelcastManagedThread.run(HazelcastManagedThread.java:102)n"}
{"timestamp":"2021-06-01T20:29:49.779 10:00","app":"my-protected-application","logLevel":"INFO","thread":"hz.peaceful_pike.InvocationMonitorThread","eventSource":"com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor","message":"[10.1.28.31]:5701 [spring-session-cluster] [4.2] Invocations:2 timeouts:1 backup-timeouts:0"}
 

что означает этот журнал и в чем его значение.

Комментарии:

1. смогли ли вы найти причину этой проблемы.. Я тоже сталкиваюсь с проблемой, когда мое приложение spring boot развертывается в кластере kubernetes.. Хотя раньше это работало…

2. Проблема @SunitChatterjee заключалась в том же, что у нас было развертывание без гражданства. После настройки безголового кластера проблема была решена

Ответ №1:

Хазелкаст для OpenShift

Проверьте, используете ли вы набор состояний (не развертывание). В случае обнаружения поиска DNS использование развертывания может привести к запуску Hazelcast в режиме разделения мозга. Также вы можете увеличить значение параметра service-dns-timeout.