|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectnet.neoremind.fountain.datasource.AbstractHADatasource<T>
public abstract class AbstractHADatasource<T extends MysqlDataSource>
mysql ha 支持的数据源抽象。该实现使用组装模式,实现MysqlDataSource接口。
支持泛型,mysqlbinlog、databus数据源的ha都可以基于此类实现。
MysqlDataSource,使用
DatasourceChoosePolicy来选择数据源,初始化或者当前数据源断开时都可以 使用
DatasourceChoosePolicy选择的新的数据源。
| 字段摘要 | |
|---|---|
protected T |
currentDataSource
记录当前选中的数据源 |
protected DatasourceChoosePolicy |
datasourceChoosePolicy
数据源选择策略 |
protected List<T> |
mysqlDataSourceList
备选的数据源列表 |
| 构造方法摘要 | |
|---|---|
AbstractHADatasource()
|
|
| 方法摘要 | ||
|---|---|---|
protected void |
checkDataSourceListEmpty()
检查备选数据源是否为空,如果为空则抛出异常 |
|
protected void |
chooseMysqlDataSource()
从备选数据源列表中选中可用的数据源源,具体的选择会被委托到 DatasourceChoosePolicy
中, 选中的数据源需要使用DatasourceChooseCallbackHandler来回调做一些初始化操作。 |
|
void |
close()
关闭数据源 |
|
protected abstract
|
doHaTask(String command,
String method,
TaskExcutor<E> taskExecutor)
在ha的环境中封装一批类似的业务逻辑,比如执行sql,查询表的元数据等,本身是一种策略模式,被用于模板方法中 |
|
DatasourceChoosePolicy |
getDatasourceChoosePolicy()
|
|
String |
getIpAddress()
获取当前数据源的ip地址 |
|
protected abstract org.slf4j.Logger |
getLogger()
获取当前的logger对象 |
|
List<T> |
getMysqlDataSourceList()
|
|
int |
getPort()
获取当前数据源的端口 |
|
boolean |
isOpen()
数据源是否已经处于打开状态 |
|
void |
open()
打开一个数据源,用以读取数据 |
|
protected abstract void |
prepareChoosedDatasouce(T choosedDattasource)
初始化选中的数据源 |
|
ResultSetPacket |
query(String query)
执行查询sql |
|
TableMeta |
queryTableMeta(String tableFullName)
查询给定表的schema |
|
protected void |
safeCloseCurrent()
安全的关闭数据源,并记录日志 |
|
void |
setDatasourceChoosePolicy(DatasourceChoosePolicy datasourceChoosePolicy)
|
|
void |
setMysqlDataSourceList(List<T> mysqlDataSourceList)
|
|
OKPacket |
update(String query)
执行修改数据的sql |
|
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 字段详细信息 |
|---|
protected List<T extends MysqlDataSource> mysqlDataSourceList
protected volatile T extends MysqlDataSource currentDataSource
protected DatasourceChoosePolicy datasourceChoosePolicy
| 构造方法详细信息 |
|---|
public AbstractHADatasource()
| 方法详细信息 |
|---|
public List<T> getMysqlDataSourceList()
public void setMysqlDataSourceList(List<T> mysqlDataSourceList)
public DatasourceChoosePolicy getDatasourceChoosePolicy()
public void setDatasourceChoosePolicy(DatasourceChoosePolicy datasourceChoosePolicy)
protected abstract <E> E doHaTask(String command,
String method,
TaskExcutor<E> taskExecutor)
throws NoSuchAlgorithmException,
IOException
command - method - taskExecutor -
NoSuchAlgorithmException
IOException
protected abstract void prepareChoosedDatasouce(T choosedDattasource)
throws IOException,
NoSuchAlgorithmException,
TimeoutException
choosedDattasource -
IOException
NoSuchAlgorithmException
TimeoutExceptionprotected abstract org.slf4j.Logger getLogger()
public void open()
throws IOException,
NoSuchAlgorithmException,
TimeoutException
MysqlDataSource 复制的描述
MysqlDataSource 中的 openIOException
NoSuchAlgorithmException
TimeoutExceptionpublic boolean isOpen()
MysqlDataSource 复制的描述
MysqlDataSource 中的 isOpenpublic void close()
MysqlDataSource 复制的描述
MysqlDataSource 中的 closepublic String getIpAddress()
MysqlDataSource 复制的描述
MysqlDataSource 中的 getIpAddresspublic int getPort()
MysqlDataSource 复制的描述
MysqlDataSource 中的 getPort
public OKPacket update(String query)
throws IOException,
NoSuchAlgorithmException
MysqlDataSource 复制的描述
MysqlDataSource 中的 updateIOException
NoSuchAlgorithmException
public ResultSetPacket query(String query)
throws IOException,
NoSuchAlgorithmException
MysqlDataSource 复制的描述
MysqlDataSource 中的 queryIOException
NoSuchAlgorithmException
public TableMeta queryTableMeta(String tableFullName)
throws IOException,
NoSuchAlgorithmException
MysqlDataSource 复制的描述
MysqlDataSource 中的 queryTableMetaIOException
NoSuchAlgorithmException
protected void checkDataSourceListEmpty()
throws DataSourceInvalidException
DataSourceInvalidException
protected void chooseMysqlDataSource()
throws IOException,
NoSuchAlgorithmException
DatasourceChoosePolicy
中, 选中的数据源需要使用DatasourceChooseCallbackHandler来回调做一些初始化操作。
IOException
NoSuchAlgorithmExceptionprotected void safeCloseCurrent()
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||