类 JRaftServer
- java.lang.Object
-
- com.alibaba.nacos.core.distributed.raft.JRaftServer
-
public class JRaftServer extends java.lang.ObjectJRaft server instance, away from Spring IOC management.Why do we need to create a raft group based on the value of LogProcessor group (), that is, each function module has its own state machine. Because each LogProcessor corresponds to a different functional module, such as Nacos's naming module and config module, these two modules are independent of each other and do not affect each other. If we have only one state machine, it is equal to the log of all functional modules The processing is loaded together. Any module that has an exception during the log processing and a long block operation will affect the normal operation of other functional modules.
- 作者:
- liaochuntao
-
-
嵌套类概要
嵌套类 修饰符和类型 类 说明 static classJRaftServer.RaftGroupTuple
-
字段概要
字段 修饰符和类型 字段 说明 private com.alipay.sofa.jraft.rpc.impl.cli.CliClientServiceImplcliClientServiceprivate com.alipay.sofa.jraft.CliServicecliServiceprivate com.alipay.sofa.jraft.conf.Configurationconfprivate intfailoverRetriesprivate booleanisShutdownprivate booleanisStartedprivate com.alipay.sofa.jraft.entity.PeerIdlocalPeerIdprivate java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple>multiRaftGroupprivate com.alipay.sofa.jraft.option.NodeOptionsnodeOptionsprivate java.util.Collection<com.alibaba.nacos.consistency.cp.RequestProcessor4CP>processorsprivate RaftConfigraftConfigprivate intrpcRequestTimeoutMsprivate com.alipay.sofa.jraft.rpc.RpcServerrpcServerprivate java.lang.StringselfIpprivate intselfPortprivate com.alibaba.nacos.consistency.Serializerserializerprivate com.alipay.sofa.jraft.rpc.RpcProcessoruserProcessor
-
构造器概要
构造器 构造器 说明 JRaftServer()
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 voidapplyOperation(com.alipay.sofa.jraft.Node node, com.google.protobuf.Message data, FailoverClosure closure)java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response>commit(java.lang.String group, com.google.protobuf.Message data, java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response> future)(专用程序包) voidcreateMultiRaftGroup(java.util.Collection<com.alibaba.nacos.consistency.cp.RequestProcessor4CP> processors)com.alipay.sofa.jraft.NodefindNodeByGroup(java.lang.String group)JRaftServer.RaftGroupTuplefindTupleByGroup(java.lang.String group)(专用程序包) java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response>get(com.alibaba.nacos.consistency.entity.ReadRequest request)(专用程序包) com.alipay.sofa.jraft.CliServicegetCliService()protected com.alipay.sofa.jraft.entity.PeerIdgetLeader(java.lang.String raftGroupId)(专用程序包) java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple>getMultiRaftGroup()(专用程序包) voidinit(RaftConfig config)private voidinvokeToLeader(java.lang.String group, com.google.protobuf.Message request, int timeoutMillis, FailoverClosure closure)(专用程序包) voidmockMultiRaftGroup(java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> map)(专用程序包) booleanpeerChange(JRaftMaintainService maintainService, java.util.Set<java.lang.String> newPeers)voidreadFromLeader(com.alibaba.nacos.consistency.entity.ReadRequest request, java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response> future)(专用程序包) voidrefreshRouteTable(java.lang.String group)(专用程序包) voidregisterSelfToCluster(java.lang.String groupId, com.alipay.sofa.jraft.entity.PeerId selfIp, com.alipay.sofa.jraft.conf.Configuration conf)Add yourself to the Raft clustervoidsetFailoverRetries(int failoverRetries)(专用程序包) voidshutdown()(专用程序包) voidstart()
-
-
-
字段详细资料
-
rpcServer
private com.alipay.sofa.jraft.rpc.RpcServer rpcServer
-
cliClientService
private com.alipay.sofa.jraft.rpc.impl.cli.CliClientServiceImpl cliClientService
-
cliService
private com.alipay.sofa.jraft.CliService cliService
-
multiRaftGroup
private java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> multiRaftGroup
-
isStarted
private volatile boolean isStarted
-
isShutdown
private volatile boolean isShutdown
-
conf
private com.alipay.sofa.jraft.conf.Configuration conf
-
userProcessor
private com.alipay.sofa.jraft.rpc.RpcProcessor userProcessor
-
nodeOptions
private com.alipay.sofa.jraft.option.NodeOptions nodeOptions
-
serializer
private com.alibaba.nacos.consistency.Serializer serializer
-
processors
private java.util.Collection<com.alibaba.nacos.consistency.cp.RequestProcessor4CP> processors
-
selfIp
private java.lang.String selfIp
-
selfPort
private int selfPort
-
raftConfig
private RaftConfig raftConfig
-
localPeerId
private com.alipay.sofa.jraft.entity.PeerId localPeerId
-
failoverRetries
private int failoverRetries
-
rpcRequestTimeoutMs
private int rpcRequestTimeoutMs
-
-
方法详细资料
-
setFailoverRetries
public void setFailoverRetries(int failoverRetries)
-
init
void init(RaftConfig config)
-
start
void start()
-
createMultiRaftGroup
void createMultiRaftGroup(java.util.Collection<com.alibaba.nacos.consistency.cp.RequestProcessor4CP> processors)
-
get
java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response> get(com.alibaba.nacos.consistency.entity.ReadRequest request)
-
readFromLeader
public void readFromLeader(com.alibaba.nacos.consistency.entity.ReadRequest request, java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response> future)
-
commit
public java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response> commit(java.lang.String group, com.google.protobuf.Message data, java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response> future)
-
registerSelfToCluster
void registerSelfToCluster(java.lang.String groupId, com.alipay.sofa.jraft.entity.PeerId selfIp, com.alipay.sofa.jraft.conf.Configuration conf)Add yourself to the Raft cluster- 参数:
groupId- raft groupselfIp- local raft node addressconf-Configurationwithout self info
-
getLeader
protected com.alipay.sofa.jraft.entity.PeerId getLeader(java.lang.String raftGroupId)
-
shutdown
void shutdown()
-
applyOperation
public void applyOperation(com.alipay.sofa.jraft.Node node, com.google.protobuf.Message data, FailoverClosure closure)
-
invokeToLeader
private void invokeToLeader(java.lang.String group, com.google.protobuf.Message request, int timeoutMillis, FailoverClosure closure)
-
peerChange
boolean peerChange(JRaftMaintainService maintainService, java.util.Set<java.lang.String> newPeers)
-
refreshRouteTable
void refreshRouteTable(java.lang.String group)
-
findTupleByGroup
public JRaftServer.RaftGroupTuple findTupleByGroup(java.lang.String group)
-
findNodeByGroup
public com.alipay.sofa.jraft.Node findNodeByGroup(java.lang.String group)
-
getMultiRaftGroup
java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> getMultiRaftGroup()
-
mockMultiRaftGroup
void mockMultiRaftGroup(java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> map)
-
getCliService
com.alipay.sofa.jraft.CliService getCliService()
-
-