类 DistributedDatabaseOperateImpl

  • 所有已实现的接口:
    BaseDatabaseOperate, DatabaseOperate

    @Conditional(ConditionDistributedEmbedStorage.class)
    @Component
    public class DistributedDatabaseOperateImpl
    extends com.alibaba.nacos.consistency.cp.RequestProcessor4CP
    implements BaseDatabaseOperate
    Distributed Database Operate.
                       ┌────────────────────┐
                   ┌──▶│   PersistService   │
                   │   └────────────────────┘ ┌─────────────────┐
                   │              │           │                 │
                   │              │           │                 ▼
                   │              │           │    ┌────────────────────────┐
                   │              │           │    │  acquireSnakeflowerId  │
                   │              │           │    └────────────────────────┘
                   │              │           │                 │
                   │              │           │                 │
                   │              │           │                 ▼
                   │              │           │      ┌────────────────────┐          save sql
                   │              ▼           │      │     saveConfig     │──────────context─────────────┐
                   │     ┌────────────────┐   │      └────────────────────┘                              │
                   │     │ publishConfig  │───┘                 │                                        │
                   │     └────────────────┘                     │                                        │
                   │                                            ▼                                        ▼
                   │                               ┌─────────────────────────┐    save sql    ┌────────────────────┐
                   │                               │ saveConfigTagRelations  │────context────▶│  SqlContextUtils   │◀─┐
            publish config                         └─────────────────────────┘                └────────────────────┘  │
                   │                                            │                                        ▲            │
                   │                                            │                                        │            │
                   │                                            ▼                                        │            │
                   │                                ┌───────────────────────┐         save sql           │            │
                ┌────┐                              │   saveConfigHistory   │─────────context────────────┘            │
                │user│                              └───────────────────────┘                                         │
                └────┘                                                                                                │
                   ▲                                                                                                  │
                   │                                           ┌1:getCurrentSqlContexts───────────────────────────────┘
                   │                                           │
                   │                                           │
                   │                                           │
                   │           ┌───────────────┐    ┌─────────────────────┐
                   │           │ JdbcTemplate  │◀───│   DatabaseOperate   │───┐
           4:execute result    └───────────────┘    └─────────────────────┘   │
                   │                   │                       ▲              │
                   │                   │                       │              │
                   │                   │                  3:onApply         2:submit(List<ModifyRequest>)
                   │                   │                       │              │
                   │                   ▼                       │              │
                   │           ┌──────────────┐                │              │
                   │           │ Apache Derby │    ┌───────────────────────┐  │
                   │           └──────────────┘    │     JRaftProtocol     │◀─┘
                   │                               └───────────────────────┘
                   │                                           │
                   │                                           │
                   └───────────────────────────────────────────┘
     
    作者:
    liaochuntao
    • 字段概要

      字段 
      修饰符和类型 字段 说明
      private static java.lang.String DATA_IMPORT_KEY
      The data import operation is dedicated key, which ACTS as an identifier.
      private LocalDataSourceServiceImpl dataSourceService  
      private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate  
      private java.util.concurrent.locks.ReentrantReadWriteLock lock  
      private com.alibaba.nacos.core.cluster.ServerMemberManager memberManager  
      private com.alibaba.nacos.consistency.cp.CPProtocol protocol  
      private java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock readLock  
      private com.alibaba.nacos.consistency.Serializer serializer  
      private org.springframework.transaction.support.TransactionTemplate transactionTemplate  
      private java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock writeLock  
    • 构造器概要

      构造器 
      构造器 说明
      DistributedDatabaseOperateImpl​(com.alibaba.nacos.core.cluster.ServerMemberManager memberManager, com.alibaba.nacos.core.distributed.ProtocolManager protocolManager)  
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      java.util.concurrent.CompletableFuture<com.alibaba.nacos.common.model.RestResult<java.lang.String>> dataImport​(java.io.File file)
      data importing, This method is suitable for importing data from external data sources into embedded data sources.
      java.lang.String group()  
      private void handleExtendInfo​(java.util.Map<java.lang.String,​java.lang.String> extendInfo)  
      protected void init()  
      private com.alibaba.nacos.consistency.entity.Response innerRead​(com.alibaba.nacos.consistency.entity.ReadRequest request, boolean blockRead)
      In some business situations, you need to avoid the timeout issue, so blockRead is used to determine this.
      java.util.List<com.alibaba.nacos.consistency.snapshot.SnapshotOperation> loadSnapshotOperate()  
      void mockConsistencyProtocol​(com.alibaba.nacos.consistency.cp.CPProtocol protocol)  
      com.alibaba.nacos.consistency.entity.Response onApply​(com.alibaba.nacos.consistency.entity.WriteRequest log)  
      void onError​(java.lang.Throwable throwable)  
      com.alibaba.nacos.consistency.entity.Response onRequest​(com.alibaba.nacos.consistency.entity.ReadRequest request)  
      java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> queryMany​(java.lang.String sql, java.lang.Object[] args)
      Data query transaction.
      <R> java.util.List<R> queryMany​(java.lang.String sql, java.lang.Object[] args, java.lang.Class<R> rClass)
      Data query transaction.
      <R> java.util.List<R> queryMany​(java.lang.String sql, java.lang.Object[] args, org.springframework.jdbc.core.RowMapper<R> mapper)
      Data query transaction.
      <R> R queryOne​(java.lang.String sql, java.lang.Class<R> cls)
      Data query transaction.
      <R> R queryOne​(java.lang.String sql, java.lang.Object[] args, java.lang.Class<R> cls)
      Data query transaction.
      <R> R queryOne​(java.lang.String sql, java.lang.Object[] args, org.springframework.jdbc.core.RowMapper<R> mapper)
      Data query transaction.
      java.lang.Boolean update​(java.util.List<ModifyRequest> sqlContext, java.util.function.BiConsumer<java.lang.Boolean,​java.lang.Throwable> consumer)
      data modify transaction.
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 字段详细资料

      • DATA_IMPORT_KEY

        private static final java.lang.String DATA_IMPORT_KEY
        The data import operation is dedicated key, which ACTS as an identifier.
        另请参阅:
        常量字段值
      • memberManager

        private com.alibaba.nacos.core.cluster.ServerMemberManager memberManager
      • protocol

        private com.alibaba.nacos.consistency.cp.CPProtocol protocol
      • jdbcTemplate

        private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate
      • transactionTemplate

        private org.springframework.transaction.support.TransactionTemplate transactionTemplate
      • serializer

        private com.alibaba.nacos.consistency.Serializer serializer
      • lock

        private java.util.concurrent.locks.ReentrantReadWriteLock lock
      • readLock

        private java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock readLock
      • writeLock

        private java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock writeLock
    • 构造器详细资料

      • DistributedDatabaseOperateImpl

        public DistributedDatabaseOperateImpl​(com.alibaba.nacos.core.cluster.ServerMemberManager memberManager,
                                              com.alibaba.nacos.core.distributed.ProtocolManager protocolManager)
                                       throws java.lang.Exception
        抛出:
        java.lang.Exception
    • 方法详细资料

      • init

        protected void init()
                     throws java.lang.Exception
        抛出:
        java.lang.Exception
      • mockConsistencyProtocol

        public void mockConsistencyProtocol​(com.alibaba.nacos.consistency.cp.CPProtocol protocol)
      • queryOne

        public <R> R queryOne​(java.lang.String sql,
                              java.lang.Class<R> cls)
        从接口复制的说明: DatabaseOperate
        Data query transaction.
        指定者:
        queryOne 在接口中 DatabaseOperate
        类型参数:
        R - return type
        参数:
        sql - sqk text
        cls - target type
        返回:
        query result
      • queryOne

        public <R> R queryOne​(java.lang.String sql,
                              java.lang.Object[] args,
                              java.lang.Class<R> cls)
        从接口复制的说明: DatabaseOperate
        Data query transaction.
        指定者:
        queryOne 在接口中 DatabaseOperate
        类型参数:
        R - return type
        参数:
        sql - sqk text
        args - sql parameters
        cls - target type
        返回:
        query result
      • queryOne

        public <R> R queryOne​(java.lang.String sql,
                              java.lang.Object[] args,
                              org.springframework.jdbc.core.RowMapper<R> mapper)
        从接口复制的说明: DatabaseOperate
        Data query transaction.
        指定者:
        queryOne 在接口中 DatabaseOperate
        类型参数:
        R - return type
        参数:
        sql - sqk text
        args - sql parameters
        mapper - Database query result converter
        返回:
        query result
      • queryMany

        public <R> java.util.List<R> queryMany​(java.lang.String sql,
                                               java.lang.Object[] args,
                                               org.springframework.jdbc.core.RowMapper<R> mapper)
        从接口复制的说明: DatabaseOperate
        Data query transaction.
        指定者:
        queryMany 在接口中 DatabaseOperate
        类型参数:
        R - return type
        参数:
        sql - sqk text
        args - sql parameters
        mapper - Database query result converter
        返回:
        query result
      • queryMany

        public <R> java.util.List<R> queryMany​(java.lang.String sql,
                                               java.lang.Object[] args,
                                               java.lang.Class<R> rClass)
        从接口复制的说明: DatabaseOperate
        Data query transaction.
        指定者:
        queryMany 在接口中 DatabaseOperate
        类型参数:
        R - return type
        参数:
        sql - sqk text
        args - sql parameters
        rClass - target type
        返回:
        query result
      • queryMany

        public java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> queryMany​(java.lang.String sql,
                                                                                                java.lang.Object[] args)
        从接口复制的说明: DatabaseOperate
        Data query transaction.
        指定者:
        queryMany 在接口中 DatabaseOperate
        参数:
        sql - sqk text
        args - sql parameters
        返回:
        query result
      • innerRead

        private com.alibaba.nacos.consistency.entity.Response innerRead​(com.alibaba.nacos.consistency.entity.ReadRequest request,
                                                                        boolean blockRead)
                                                                 throws java.lang.Exception
        In some business situations, you need to avoid the timeout issue, so blockRead is used to determine this.
        参数:
        request - ReadRequest
        blockRead - is async read operation
        返回:
        Response
        抛出:
        java.lang.Exception - Exception
      • dataImport

        public java.util.concurrent.CompletableFuture<com.alibaba.nacos.common.model.RestResult<java.lang.String>> dataImport​(java.io.File file)
        从接口复制的说明: DatabaseOperate
        data importing, This method is suitable for importing data from external data sources into embedded data sources.
        指定者:
        dataImport 在接口中 DatabaseOperate
        参数:
        file - File
        返回:
        CompletableFuture
      • update

        public java.lang.Boolean update​(java.util.List<ModifyRequest> sqlContext,
                                        java.util.function.BiConsumer<java.lang.Boolean,​java.lang.Throwable> consumer)
        从接口复制的说明: DatabaseOperate
        data modify transaction.
        指定者:
        update 在接口中 DatabaseOperate
        参数:
        sqlContext - List
        consumer - BiConsumer
        返回:
        is success
      • loadSnapshotOperate

        public java.util.List<com.alibaba.nacos.consistency.snapshot.SnapshotOperation> loadSnapshotOperate()
        覆盖:
        loadSnapshotOperate 在类中 com.alibaba.nacos.consistency.cp.RequestProcessor4CP
      • onRequest

        public com.alibaba.nacos.consistency.entity.Response onRequest​(com.alibaba.nacos.consistency.entity.ReadRequest request)
        指定者:
        onRequest 在类中 com.alibaba.nacos.consistency.RequestProcessor
      • onApply

        public com.alibaba.nacos.consistency.entity.Response onApply​(com.alibaba.nacos.consistency.entity.WriteRequest log)
        指定者:
        onApply 在类中 com.alibaba.nacos.consistency.RequestProcessor
      • onError

        public void onError​(java.lang.Throwable throwable)
        覆盖:
        onError 在类中 com.alibaba.nacos.consistency.RequestProcessor
      • group

        public java.lang.String group()
        指定者:
        group 在类中 com.alibaba.nacos.consistency.RequestProcessor
      • handleExtendInfo

        private void handleExtendInfo​(java.util.Map<java.lang.String,​java.lang.String> extendInfo)