类 JRaftProtocol

  • 所有已实现的接口:
    com.alibaba.nacos.consistency.CommandOperations, com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>, com.alibaba.nacos.consistency.cp.CPProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>

    public class JRaftProtocol
    extends AbstractConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
    implements com.alibaba.nacos.consistency.cp.CPProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
    A concrete implementation of CP protocol: JRaft.
                                               ┌──────────────────────┐
                ┌──────────────────────┐       │                      ▼
                │   ProtocolManager    │       │        ┌───────────────────────────┐
                └──────────────────────┘       │        │for p in [LogProcessor4CP] │
                            │                  │        └───────────────────────────┘
                            ▼                  │                      │
          ┌──────────────────────────────────┐ │                      ▼
          │    discovery LogProcessor4CP     │ │             ┌─────────────────┐
          └──────────────────────────────────┘ │             │  get p.group()  │
                            │                  │             └─────────────────┘
                            ▼                  │                      │
                     ┌─────────────┐           │                      │
                     │ RaftConfig  │           │                      ▼
                     └─────────────┘           │      ┌──────────────────────────────┐
                            │                  │      │  create raft group service   │
                            ▼                  │      └──────────────────────────────┘
                  ┌──────────────────┐         │
                  │  JRaftProtocol   │         │
                  └──────────────────┘         │
                            │                  │
                         init()                │
                            │                  │
                            ▼                  │
                   ┌─────────────────┐         │
                   │   JRaftServer   │         │
                   └─────────────────┘         │
                            │                  │
                            │                  │
                            ▼                  │
                 ┌────────────────────┐        │
                 │JRaftServer.start() │        │
                 └────────────────────┘        │
                            │                  │
                            └──────────────────┘
     
    作者:
    liaochuntao
    • 字段详细资料

      • initialized

        private final java.util.concurrent.atomic.AtomicBoolean initialized
      • shutdowned

        private final java.util.concurrent.atomic.AtomicBoolean shutdowned
      • serializer

        private final com.alibaba.nacos.consistency.Serializer serializer
    • 构造器详细资料

      • JRaftProtocol

        public JRaftProtocol​(ServerMemberManager memberManager)
                      throws java.lang.Exception
        抛出:
        java.lang.Exception
    • 方法详细资料

      • init

        public void init​(RaftConfig config)
        指定者:
        init 在接口中 com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
      • addRequestProcessors

        public void addRequestProcessors​(java.util.Collection<com.alibaba.nacos.consistency.cp.RequestProcessor4CP> processors)
        指定者:
        addRequestProcessors 在接口中 com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
      • getData

        public com.alibaba.nacos.consistency.entity.Response getData​(com.alibaba.nacos.consistency.entity.ReadRequest request)
                                                              throws java.lang.Exception
        指定者:
        getData 在接口中 com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
        抛出:
        java.lang.Exception
      • aGetData

        public java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response> aGetData​(com.alibaba.nacos.consistency.entity.ReadRequest request)
        指定者:
        aGetData 在接口中 com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
      • write

        public com.alibaba.nacos.consistency.entity.Response write​(com.alibaba.nacos.consistency.entity.WriteRequest request)
                                                            throws java.lang.Exception
        指定者:
        write 在接口中 com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
        抛出:
        java.lang.Exception
      • writeAsync

        public java.util.concurrent.CompletableFuture<com.alibaba.nacos.consistency.entity.Response> writeAsync​(com.alibaba.nacos.consistency.entity.WriteRequest request)
        指定者:
        writeAsync 在接口中 com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
      • memberChange

        public void memberChange​(java.util.Set<java.lang.String> addresses)
        指定者:
        memberChange 在接口中 com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
      • shutdown

        public void shutdown()
        指定者:
        shutdown 在接口中 com.alibaba.nacos.consistency.ConsistencyProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>
      • execute

        public com.alibaba.nacos.common.model.RestResult<java.lang.String> execute​(java.util.Map<java.lang.String,​java.lang.String> args)
        指定者:
        execute 在接口中 com.alibaba.nacos.consistency.CommandOperations
      • injectProtocolMetaData

        private void injectProtocolMetaData​(com.alibaba.nacos.consistency.ProtocolMetaData metaData)
      • isLeader

        public boolean isLeader​(java.lang.String group)
        指定者:
        isLeader 在接口中 com.alibaba.nacos.consistency.cp.CPProtocol<RaftConfig,​com.alibaba.nacos.consistency.cp.RequestProcessor4CP>