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=

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=

maxPoolSize=

idleTimeout=

blockingTimeout=

preparedStatementCacheSize=

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 动态配置代码结构

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);

最新文章

  1. HTML 5 代码
  2. l段子
  3. oracle查询出的字段加引号
  4. jeasyui datagrid控件的一个小问题
  5. 18、SQL提高篇(变量的使用 拓展)
  6. Nginx简单实现网站的负载均衡
  7. 【nodejs】使用Node.js实现REST Client调用REST API
  8. mysql应用存储过程批量插入数据
  9. Java实战之04JavaWeb-01Servlet
  10. SQL Server 向堆表中插入数据的过程
  11. C# WinForm多线程(一)Thread类库
  12. return机制
  13. C++之继承
  14. MySql-两阶段加锁协议
  15. java使用Filter过滤器对Response返回值进行修改
  16. LoadRunner12 Java Vuser API语法举例
  17. 数据流分段下载(Http之 Range)
  18. poj 3415
  19. -第1章 HTMLCSS方法实现下拉菜单
  20. poj 2253——Frogger

热门文章

  1. 转:ServletContext,ActionContext,ServletActionContext
  2. css3 text-overflow属性
  3. C语言运算符优先级和口诀(转)
  4. html尖角提示框的实现
  5. RX(Reactive Extinsion)和IX(Interactive Extinsion)库改名了
  6. TStringHelper的相关知识、Helper相关细节
  7. php中的魔术方法
  8. python反射原理
  9. touches, targetTouches, changedTouches 区别
  10. 关于js调用外部部署的web api