类 DistributedDatabaseOperateImpl
- java.lang.Object
-
- com.alibaba.nacos.consistency.RequestProcessor
-
- com.alibaba.nacos.consistency.cp.RequestProcessor4CP
-
- com.alibaba.nacos.config.server.service.repository.embedded.DistributedDatabaseOperateImpl
-
- 所有已实现的接口:
BaseDatabaseOperate,DatabaseOperate
@Conditional(ConditionDistributedEmbedStorage.class) @Component public class DistributedDatabaseOperateImpl extends com.alibaba.nacos.consistency.cp.RequestProcessor4CP implements BaseDatabaseOperate
Distributed Database Operate.┌────────────────────┐ ┌──▶│ PersistService │ │ └────────────────────┘ ┌─────────────────┐ │ │ │ │ │ │ │ ▼ │ │ │ ┌────────────────────────┐ │ │ │ │ acquireSnowFlowerId │ │ │ │ └────────────────────────┘ │ │ │ │ │ │ │ │ │ │ │ ▼ │ │ │ ┌────────────────────┐ 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.StringDATA_IMPORT_KEYThe data import operation is dedicated key, which ACTS as an identifier.private LocalDataSourceServiceImpldataSourceServiceprivate org.springframework.jdbc.core.JdbcTemplatejdbcTemplateprivate java.util.concurrent.locks.ReentrantReadWriteLocklockprivate com.alibaba.nacos.core.cluster.ServerMemberManagermemberManagerprivate com.alibaba.nacos.consistency.cp.CPProtocolprotocolprivate java.util.concurrent.locks.ReentrantReadWriteLock.ReadLockreadLockprivate com.alibaba.nacos.consistency.Serializerserializerprivate org.springframework.transaction.support.TransactionTemplatetransactionTemplateprivate java.util.concurrent.locks.ReentrantReadWriteLock.WriteLockwriteLock
-
构造器概要
构造器 构造器 说明 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.Stringgroup()private voidhandleExtendInfo(java.util.Map<java.lang.String,java.lang.String> extendInfo)protected voidinit()private com.alibaba.nacos.consistency.entity.ResponseinnerRead(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()voidmockConsistencyProtocol(com.alibaba.nacos.consistency.cp.CPProtocol protocol)com.alibaba.nacos.consistency.entity.ResponseonApply(com.alibaba.nacos.consistency.entity.WriteRequest log)voidonError(java.lang.Throwable throwable)com.alibaba.nacos.consistency.entity.ResponseonRequest(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> RqueryOne(java.lang.String sql, java.lang.Class<R> cls)Data query transaction.<R> RqueryOne(java.lang.String sql, java.lang.Object[] args, java.lang.Class<R> cls)Data query transaction.<R> RqueryOne(java.lang.String sql, java.lang.Object[] args, org.springframework.jdbc.core.RowMapper<R> mapper)Data query transaction.java.lang.Booleanupdate(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
-
从接口继承的方法 com.alibaba.nacos.config.server.service.repository.embedded.BaseDatabaseOperate
doDataImport, queryMany, queryMany, queryMany, queryOne, queryOne, queryOne, update, update
-
从接口继承的方法 com.alibaba.nacos.config.server.service.repository.embedded.DatabaseOperate
blockUpdate, blockUpdate, futureUpdate, update
-
-
-
-
字段详细资料
-
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
-
dataSourceService
private LocalDataSourceServiceImpl dataSourceService
-
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
-
-
方法详细资料
-
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)从接口复制的说明:DatabaseOperateData query transaction.- 指定者:
queryOne在接口中DatabaseOperate- 类型参数:
R- return type- 参数:
sql- sqk textcls- target type- 返回:
- query result
-
queryOne
public <R> R queryOne(java.lang.String sql, java.lang.Object[] args, java.lang.Class<R> cls)从接口复制的说明:DatabaseOperateData query transaction.- 指定者:
queryOne在接口中DatabaseOperate- 类型参数:
R- return type- 参数:
sql- sqk textargs- sql parameterscls- target type- 返回:
- query result
-
queryOne
public <R> R queryOne(java.lang.String sql, java.lang.Object[] args, org.springframework.jdbc.core.RowMapper<R> mapper)从接口复制的说明:DatabaseOperateData query transaction.- 指定者:
queryOne在接口中DatabaseOperate- 类型参数:
R- return type- 参数:
sql- sqk textargs- sql parametersmapper- 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)从接口复制的说明:DatabaseOperateData query transaction.- 指定者:
queryMany在接口中DatabaseOperate- 类型参数:
R- return type- 参数:
sql- sqk textargs- sql parametersmapper- 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)从接口复制的说明:DatabaseOperateData query transaction.- 指定者:
queryMany在接口中DatabaseOperate- 类型参数:
R- return type- 参数:
sql- sqk textargs- sql parametersrClass- 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)从接口复制的说明:DatabaseOperateData query transaction.- 指定者:
queryMany在接口中DatabaseOperate- 参数:
sql- sqk textargs- 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.ExceptionIn some business situations, you need to avoid the timeout issue, so blockRead is used to determine this.- 参数:
request-ReadRequestblockRead- 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)
从接口复制的说明:DatabaseOperatedata 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)
从接口复制的说明:DatabaseOperatedata modify transaction.- 指定者:
update在接口中DatabaseOperate- 参数:
sqlContext-Listconsumer-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)
-
-