public class JRaftServer
extends java.lang.Object
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.
| 限定符和类型 | 类和说明 |
|---|---|
static class |
JRaftServer.RaftGroupTuple |
| 限定符和类型 | 字段和说明 |
|---|---|
private com.alipay.sofa.jraft.rpc.impl.cli.CliClientServiceImpl |
cliClientService |
private com.alipay.sofa.jraft.CliService |
cliService |
private com.alipay.sofa.jraft.conf.Configuration |
conf |
private int |
failoverRetries |
private boolean |
isShutdown |
private boolean |
isStarted |
private com.alipay.sofa.jraft.entity.PeerId |
localPeerId |
private java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> |
multiRaftGroup |
private com.alipay.sofa.jraft.option.NodeOptions |
nodeOptions |
private java.util.Collection<RequestProcessor4CP> |
processors |
private RaftConfig |
raftConfig |
private int |
rpcRequestTimeoutMs |
private com.alipay.sofa.jraft.rpc.RpcServer |
rpcServer |
private java.lang.String |
selfIp |
private int |
selfPort |
private Serializer |
serializer |
private com.alipay.sofa.jraft.rpc.RpcProcessor |
userProcessor |
| 构造器和说明 |
|---|
JRaftServer() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
applyOperation(com.alipay.sofa.jraft.Node node,
com.google.protobuf.Message data,
FailoverClosure closure) |
java.util.concurrent.CompletableFuture<Response> |
commit(java.lang.String group,
com.google.protobuf.Message data,
java.util.concurrent.CompletableFuture<Response> future) |
(专用程序包) void |
createMultiRaftGroup(java.util.Collection<RequestProcessor4CP> processors) |
com.alipay.sofa.jraft.Node |
findNodeByGroup(java.lang.String group) |
JRaftServer.RaftGroupTuple |
findTupleByGroup(java.lang.String group) |
(专用程序包) java.util.concurrent.CompletableFuture<Response> |
get(ReadRequest request) |
(专用程序包) com.alipay.sofa.jraft.CliService |
getCliService() |
protected com.alipay.sofa.jraft.entity.PeerId |
getLeader(java.lang.String raftGroupId) |
(专用程序包) java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> |
getMultiRaftGroup() |
(专用程序包) void |
init(RaftConfig config) |
private void |
invokeToLeader(java.lang.String group,
com.google.protobuf.Message request,
int timeoutMillis,
FailoverClosure closure) |
(专用程序包) void |
mockMultiRaftGroup(java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> map) |
(专用程序包) boolean |
peerChange(JRaftMaintainService maintainService,
java.util.Set<java.lang.String> newPeers) |
void |
readFromLeader(ReadRequest request,
java.util.concurrent.CompletableFuture<Response> future) |
(专用程序包) void |
refreshRouteTable(java.lang.String group) |
(专用程序包) 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
|
void |
setFailoverRetries(int failoverRetries) |
(专用程序包) void |
shutdown() |
(专用程序包) void |
start() |
private com.alipay.sofa.jraft.rpc.RpcServer rpcServer
private com.alipay.sofa.jraft.rpc.impl.cli.CliClientServiceImpl cliClientService
private com.alipay.sofa.jraft.CliService cliService
private java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> multiRaftGroup
private volatile boolean isStarted
private volatile boolean isShutdown
private com.alipay.sofa.jraft.conf.Configuration conf
private com.alipay.sofa.jraft.rpc.RpcProcessor userProcessor
private com.alipay.sofa.jraft.option.NodeOptions nodeOptions
private Serializer serializer
private java.util.Collection<RequestProcessor4CP> processors
private java.lang.String selfIp
private int selfPort
private RaftConfig raftConfig
private com.alipay.sofa.jraft.entity.PeerId localPeerId
private int failoverRetries
private int rpcRequestTimeoutMs
public void setFailoverRetries(int failoverRetries)
void init(RaftConfig config)
void start()
void createMultiRaftGroup(java.util.Collection<RequestProcessor4CP> processors)
java.util.concurrent.CompletableFuture<Response> get(ReadRequest request)
public void readFromLeader(ReadRequest request, java.util.concurrent.CompletableFuture<Response> future)
public java.util.concurrent.CompletableFuture<Response> commit(java.lang.String group, com.google.protobuf.Message data, java.util.concurrent.CompletableFuture<Response> future)
void registerSelfToCluster(java.lang.String groupId,
com.alipay.sofa.jraft.entity.PeerId selfIp,
com.alipay.sofa.jraft.conf.Configuration conf)
groupId - raft groupselfIp - local raft node addressconf - { Configuration} without self infoprotected com.alipay.sofa.jraft.entity.PeerId getLeader(java.lang.String raftGroupId)
void shutdown()
public void applyOperation(com.alipay.sofa.jraft.Node node,
com.google.protobuf.Message data,
FailoverClosure closure)
private void invokeToLeader(java.lang.String group,
com.google.protobuf.Message request,
int timeoutMillis,
FailoverClosure closure)
boolean peerChange(JRaftMaintainService maintainService, java.util.Set<java.lang.String> newPeers)
void refreshRouteTable(java.lang.String group)
public JRaftServer.RaftGroupTuple findTupleByGroup(java.lang.String group)
public com.alipay.sofa.jraft.Node findNodeByGroup(java.lang.String group)
java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> getMultiRaftGroup()
void mockMultiRaftGroup(java.util.Map<java.lang.String,JRaftServer.RaftGroupTuple> map)
com.alipay.sofa.jraft.CliService getCliService()
Copyright © 2018–2022 Alibaba Group. All rights reserved.