Web应用架构:
TDDL位于数据库和持久层之间,它直接与数据库建立交道
TDDL架构:
TDDL其实主要可以划分为3层架构,分别是Matrix层、Group层和Atom层。Matrix层用于实现分库分表逻辑,底层持有多个Group实例。而Group层和Atom共同组成了动态数据源,Group层实现了数据库的Master/Salve模式的写分离逻辑,底层持有多个Atom实例。最后Atom层(TAtomDataSource)实现数据库ip,port,password,connectionProperties等信息的动态推送,以及持有原子的数据源分离的JBOSS数据源。
DataSource源码分析:
DataSource 接口:
public interface DataSource extends CommonDataSource, Wrapper {
// 返回连接给JdbcTemplate使用
Connection getConnection() throws SQLException;
Connection getConnection(String username, String password)
throws SQLException;
}
AbstractTAtomDataSource 抽象类:
public abstract class AbstractTAtomDataSource implements DataSource {
protected abstract DataSource getDataSource() throws SQLException;
public abstract void init() throws Exception;
public abstract void flushDataSource();
public abstract void destroyDataSource() throws Exception;
public Connection getConnection() throws SQLException {
return getDataSource().getConnection();
}
public Connection getConnection(String username, String password) throws SQLException {
return getDataSource().getConnection(username, password);
}
public PrintWriter getLogWriter() throws SQLException {
return getDataSource().getLogWriter();
}
public int