sofastack / sofa-jraft

A production-grade java implementation of RAFT consensus algorithm.
https://www.sofastack.tech/projects/sofa-jraft/
Apache License 2.0
3.53k stars 1.12k forks source link

leader切换 #1059

Closed Shy-Chen closed 6 months ago

Shy-Chen commented 6 months ago

3节点raft集群运行过程中 出现了leader切换 日志如下

2023-12-28 21:31:30.106◊ WARN◊ [JRaft-StepDownTimer-<r1/127.0.0.1:8083>0]◊ com.alipay.sofa.jraft.core.NodeImpl#2219◊ 1860768◊ NULL◊ NULL◊ NULL◊ Node <r1/127.0.0.1:8083> steps down when alive nodes don't satisfy quorum, term=3, deadNodes=127.0.0.1:8081,127.0.0.1:8082, conf=127.0.0.1:8081,127.0.0.1:8082,127.0.0.1:8083. 2023-12-28 21:31:30.112◊ INFO◊ [JRaft-FSMCaller-Disruptor-0]◊ com.coincall.jraft.fsm.StorageStateMachine#149◊ 1860774◊ NULL◊ NULL◊ NULL◊ stateMachine stop leader region=r1, term=3 2023-12-28 21:31:30.112◊ INFO◊ [JRaft-StepDownTimer-<r1/127.0.0.1:8083>0]◊ com.alipay.sofa.jraft.core.Replicator#1146◊ 1860774◊ NULL◊ NULL◊ NULL◊ Replicator Replicator [state=Replicate, statInfo=, peerId=127.0.0.1:8082, waitId=34735, type=Follower] is going to quit 2023-12-28 21:31:30.112◊ INFO◊ [JRaft-StepDownTimer-<r1/127.0.0.1:8083>0]◊ com.alipay.sofa.jraft.core.Replicator#1146◊ 1860774◊ NULL◊ NULL◊ NULL◊ Replicator Replicator [state=Replicate, statInfo=, peerId=127.0.0.1:8081, waitId=34736, type=Follower] is going to quit 2023-12-28 21:31:30.124◊ ERROR◊ [cli-callback-1-0]◊ com.alipay.sofa.jraft.rpc.RpcRequestProcessor#58◊ 1860786◊ NULL◊ NULL◊ NULL◊ handleRequest group_id: "r1" leader_id: "127.0.0.1:8083" failed java.lang.IllegalStateException: Not leader at com.alipay.sofa.jraft.core.NodeImpl.listPeers(NodeImpl.java:2965) at com.alipay.sofa.jraft.rpc.impl.cli.GetPeersRequestProcessor.processRequest0(GetPeersRequestProcessor.java:58) at com.alipay.sofa.jraft.rpc.impl.cli.GetPeersRequestProcessor.processRequest0(GetPeersRequestProcessor.java:33) at com.alipay.sofa.jraft.rpc.impl.cli.BaseCliRequestProcessor.processRequest(BaseCliRequestProcessor.java:119) at com.alipay.sofa.jraft.rpc.RpcRequestProcessor.handleRequest(RpcRequestProcessor.java:53) at com.alipay.sofa.jraft.rpc.RpcRequestProcessor.handleRequest(RpcRequestProcessor.java:35) at com.alipay.sofa.jraft.rpc.impl.BoltRpcServer$2.handleRequest(BoltRpcServer.java:124) at com.alipay.remoting.rpc.protocol.RpcRequestProcessor.dispatchToUserProcessor(RpcRequestProcessor.java:235) at com.alipay.remoting.rpc.protocol.RpcRequestProcessor.doProcess(RpcRequestProcessor.java:146) at com.alipay.remoting.rpc.protocol.RpcRequestProcessor$ProcessTask.run(RpcRequestProcessor.java:393) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750)

因为都是在本地启动的服务 应该不是网络问题 这个是因为什么导致leader切换?

killme2008 commented 6 months ago

本地服务不代表不会有网络问题,这是两个节点失联了

com.alipay.sofa.jraft.core.NodeImpl#2219◊ 1860768◊ NULL◊ NULL◊ NULL◊ Node <r1/127.0.0.1:8083> steps down when alive nodes don't satisfy quorum, term=3, deadNodes=127.0.0.1:8081,127.0.0.1:8082,

具体还需要看下上下文和其他节点的日志