├── .gitignore ├── HEADER ├── LICENSE ├── client ├── pom.xml └── src │ └── main │ ├── java │ └── cn │ │ └── think │ │ └── in │ │ └── java │ │ └── raft │ │ └── client │ │ ├── RaftClient1.java │ │ ├── RaftClient2.java │ │ ├── RaftClient3.java │ │ ├── RaftClientRPC.java │ │ ├── RaftClientWithCommandLine.java │ │ └── util │ │ └── SleepHelper.java │ └── resources │ └── log4j.xml ├── common ├── pom.xml └── src │ └── main │ └── java │ └── cn │ └── think │ └── in │ └── java │ └── raft │ └── common │ ├── LifeCycle.java │ ├── RaftRemotingException.java │ ├── entity │ ├── AentryParam.java │ ├── AentryResult.java │ ├── ClientKVAck.java │ ├── ClientKVReq.java │ ├── Command.java │ ├── LogEntry.java │ ├── NodeConfig.java │ ├── NodeStatus.java │ ├── Peer.java │ ├── PeerSet.java │ ├── ReplicationFailModel.java │ ├── RvoteParam.java │ └── RvoteResult.java │ └── rpc │ ├── DefaultRpcClient.java │ ├── Request.java │ ├── Response.java │ └── RpcClient.java ├── pom.xml ├── readme.md └── server ├── pom.xml └── src ├── main ├── java │ └── cn │ │ └── think │ │ └── in │ │ └── java │ │ └── raft │ │ └── server │ │ ├── Consensus.java │ │ ├── LogModule.java │ │ ├── Node.java │ │ ├── RaftNodeBootStrap.java │ │ ├── StateMachine.java │ │ ├── changes │ │ ├── ClusterMembershipChanges.java │ │ ├── Result.java │ │ └── Server.java │ │ ├── config │ │ └── Constant.java │ │ ├── constant │ │ └── StateMachineSaveType.java │ │ ├── current │ │ ├── RaftThread.java │ │ ├── RaftThreadPool.java │ │ └── RaftThreadPoolExecutor.java │ │ ├── exception │ │ └── RaftNotSupportException.java │ │ ├── impl │ │ ├── ClusterMembershipChangesImpl.java │ │ ├── DefaultConsensus.java │ │ ├── DefaultLogModule.java │ │ ├── DefaultNode.java │ │ ├── DefaultStateMachine.java │ │ └── RedisStateMachine.java │ │ ├── rpc │ │ ├── DefaultRpcServiceImpl.java │ │ ├── RaftUserProcessor.java │ │ └── RpcService.java │ │ └── util │ │ └── LongConvert.java └── resources │ └── log4j.xml └── test └── java └── cn └── think └── in └── java └── raft └── server └── impl ├── DefaultLogModuleTest.java ├── DefaultStateMachineTest.java └── RocksDBTest.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/.gitignore -------------------------------------------------------------------------------- /HEADER: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/HEADER -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/LICENSE -------------------------------------------------------------------------------- /client/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/client/pom.xml -------------------------------------------------------------------------------- /client/src/main/java/cn/think/in/java/raft/client/RaftClient1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/client/src/main/java/cn/think/in/java/raft/client/RaftClient1.java -------------------------------------------------------------------------------- /client/src/main/java/cn/think/in/java/raft/client/RaftClient2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/client/src/main/java/cn/think/in/java/raft/client/RaftClient2.java -------------------------------------------------------------------------------- /client/src/main/java/cn/think/in/java/raft/client/RaftClient3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/client/src/main/java/cn/think/in/java/raft/client/RaftClient3.java -------------------------------------------------------------------------------- /client/src/main/java/cn/think/in/java/raft/client/RaftClientRPC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/client/src/main/java/cn/think/in/java/raft/client/RaftClientRPC.java -------------------------------------------------------------------------------- /client/src/main/java/cn/think/in/java/raft/client/RaftClientWithCommandLine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/client/src/main/java/cn/think/in/java/raft/client/RaftClientWithCommandLine.java -------------------------------------------------------------------------------- /client/src/main/java/cn/think/in/java/raft/client/util/SleepHelper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/client/src/main/java/cn/think/in/java/raft/client/util/SleepHelper.java -------------------------------------------------------------------------------- /client/src/main/resources/log4j.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/client/src/main/resources/log4j.xml -------------------------------------------------------------------------------- /common/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/pom.xml -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/LifeCycle.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/LifeCycle.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/RaftRemotingException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/RaftRemotingException.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/AentryParam.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/AentryParam.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/AentryResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/AentryResult.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/ClientKVAck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/ClientKVAck.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/ClientKVReq.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/ClientKVReq.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/Command.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/LogEntry.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/LogEntry.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/NodeConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/NodeConfig.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/NodeStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/NodeStatus.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/Peer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/Peer.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/PeerSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/PeerSet.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/ReplicationFailModel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/ReplicationFailModel.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/RvoteParam.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/RvoteParam.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/entity/RvoteResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/entity/RvoteResult.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/rpc/DefaultRpcClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/rpc/DefaultRpcClient.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/rpc/Request.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/rpc/Request.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/rpc/Response.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/rpc/Response.java -------------------------------------------------------------------------------- /common/src/main/java/cn/think/in/java/raft/common/rpc/RpcClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/common/src/main/java/cn/think/in/java/raft/common/rpc/RpcClient.java -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/pom.xml -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/readme.md -------------------------------------------------------------------------------- /server/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/pom.xml -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/Consensus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/Consensus.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/LogModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/LogModule.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/Node.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/Node.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/RaftNodeBootStrap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/RaftNodeBootStrap.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/StateMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/StateMachine.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/changes/ClusterMembershipChanges.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/changes/ClusterMembershipChanges.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/changes/Result.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/changes/Result.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/changes/Server.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/changes/Server.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/config/Constant.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/config/Constant.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/constant/StateMachineSaveType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/constant/StateMachineSaveType.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/current/RaftThread.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/current/RaftThread.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/current/RaftThreadPool.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/current/RaftThreadPool.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/current/RaftThreadPoolExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/current/RaftThreadPoolExecutor.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/exception/RaftNotSupportException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/exception/RaftNotSupportException.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/impl/ClusterMembershipChangesImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/impl/ClusterMembershipChangesImpl.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/impl/DefaultConsensus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/impl/DefaultConsensus.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/impl/DefaultLogModule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/impl/DefaultLogModule.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/impl/DefaultNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/impl/DefaultNode.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/impl/DefaultStateMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/impl/DefaultStateMachine.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/impl/RedisStateMachine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/impl/RedisStateMachine.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/rpc/DefaultRpcServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/rpc/DefaultRpcServiceImpl.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/rpc/RaftUserProcessor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/rpc/RaftUserProcessor.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/rpc/RpcService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/rpc/RpcService.java -------------------------------------------------------------------------------- /server/src/main/java/cn/think/in/java/raft/server/util/LongConvert.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/java/cn/think/in/java/raft/server/util/LongConvert.java -------------------------------------------------------------------------------- /server/src/main/resources/log4j.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/main/resources/log4j.xml -------------------------------------------------------------------------------- /server/src/test/java/cn/think/in/java/raft/server/impl/DefaultLogModuleTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/test/java/cn/think/in/java/raft/server/impl/DefaultLogModuleTest.java -------------------------------------------------------------------------------- /server/src/test/java/cn/think/in/java/raft/server/impl/DefaultStateMachineTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/test/java/cn/think/in/java/raft/server/impl/DefaultStateMachineTest.java -------------------------------------------------------------------------------- /server/src/test/java/cn/think/in/java/raft/server/impl/RocksDBTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stateIs0/lu-raft-kv/HEAD/server/src/test/java/cn/think/in/java/raft/server/impl/RocksDBTest.java --------------------------------------------------------------------------------