Skip to content
mengshi edited this page Jan 27, 2014 · 1 revision

 

AtomDatasource 如其名,就是一个原子的Datasource。从本质来说,就是一个对Druid的浅包装。允许业务通过非jndi的方式获取Druid的数据源,同时也可以协助dba进行统一的数据库管理。依托于diamond server进行数据配置的统一管理。从而实现一个数据库,唯一的对应一套ip+port+username+password+schema的目的。减少配置中的环节。让数据库使用更简便。

 

功能

  1. 物理数据源管理
  2. 配置变更管理(密码变更,连接池大小变更等)
  3. Druid数据源管理的相关功能
  4. 数据库R,W,NA状态通知,以及读写访问控制,如置为NA则数据库所有访问会直接抛出SQLException
  5. 数据库保护

功能介绍

a) 线程数统计线程统计的作用是,在线程进入数据库访问的getConnection()阶段,线程数自增1,在退出数据库访问的close()阶段,线程数自减1。使用这种方式统计真正与数据库交互的线程数。
这样如果数据库挂掉,那么会有更多线程等待已经挂掉数据库的连接,如果到达伐值(可在app规则中设置,默认关闭),那么会拒绝超出伐值后的线程访问数据库的请求。
b) Try-lock机制
如果数据库发生了fatal exception(也就是断连接,数据库硬盘满)等异常的时候,TDDL会抓取到这种异常。一旦发现这种异常,立刻对数据库访问进行保护,只允许单个线程访问数据库,其他线程访问则全部抛出错误。
使用这种方式可以比较有效的保护业务机器的处理能力。
c) 状态切换
DBA发现问题时,可以迅速反应,将数据库状态置为NA,那么所有访问都会直接抛出异常,从而保护业务服务器。
d) 执行次数统计
允许通过设置指定单位时间片内执行的修改类型的sql和查询类型的sql的个数。

 

目标群体

  1. 目前所有使用Druid jndi数据源的用户
  2. 希望可以在不重启动应用的情况下,依托Druid动态添加或减少数据库的用户

Clone this wiki locally