TDDL DataSource

TDDL DataSource 分为 AtomDataSource GroupDatasource

他们两者没有依赖关系, 都实现了 JDBC 规范, 可以作为独立的 datasource 单独使用

AtomDataSource

AtomDataSource 负责 diamond 动态配置, 它可以通过 diamond 动态改变 ds 的 ip port 账号密码等

AtomDataSource diamond 配置分为三部分

1. global config

global config 主要配置 database 信息, 主要包括如下配置

dataId:com.taobao.tddl.atom.global.qatest_normal_0



group:DEFAULT_GROUP



content:



ip=127.0.0.1



port=3306



dbName=qatest_normal_0



dbType=mysql



dbStatus=RW

2. app config

app config 主要包括应用配置, 例如线程池等, 如下

dataId:com.taobao.tddl.atom.app.tddl_sample.qatest_normal_0



group:DEFAULT_GROUP



content:



userName=tddl



minPoolSize=1



maxPoolSize=2



idleTimeout=10



blockingTimeout=5



preparedStatementCacheSize=15



connectionProperties=characterEncoding=gbk

3. user config

dataId:com.taobao.tddl.atom.passwd.qatest_normal_0.mysql.tddl



group:DEFAULT_GROUP



content:



encPasswd=xxxxxxx(密文,请用tddl-atom-datasource工程下的JbossPasswordDecode加密下明文密码)

 

Diamond 动态配置代码结构

TDDL DataSource

 

GroupDatasource

GroupDatasource 负责组合多个 datasource, 主要负责双机热备, 读写分离, 其中使用了 DatasourceWrapper 包装 ds, DataSourceWrapper 有一个 Weight 属性, 可以设置单个 ds 的可读可写属性, 以及读写优先级. 最后将多个 ds 组合成读写分离 ds, 实例代码

        List<DataSourceWrapper> dataSourceWrappers = new ArrayList<DataSourceWrapper>();

        dataSourceWrappers.add(new DataSourceWrapper("127.0.0.1:3306:db_1", "rpwp", getMySQLDataSource(1), DBType.MYSQL));

        dataSourceWrappers.add(new DataSourceWrapper("127.0.0.1:3306:db_2", "rpw0p0", getMySQLDataSource(2), DBType.MYSQL));



        TGroupDataSource ds = new TGroupDataSource();

        ds.init(dataSourceWrappers);

 

你可能感兴趣的:(dataSource)