Atom层(可独立使用)
–单个数据库的抽象 –动态化的jboss数据源,ip port 用户名密码都可以动态修改。 –TryLock模型 –动态阻止某个sql执行 –执行次数统计和限制
GROUP 层(可独立使用)
–读写分离 –权重 –写的HA切换 –读的HA切换 –允许动态添加新的slave节点
Matrix 层
–核心是规则引擎 •可以单独抽取出来,放在其他实现里,比如自己封装的ibatis DAO里面。 –通过规则引擎实现了动态扩容 –主要路径 •Sql解析->规则引擎计算->数据执行->合并结果
简单例子,使用本地配置文件:
tddl-sample/src/main/resources/rule_local/spring-context.xml
<?
xml
version
=
"1.0"
encoding
=
"gb2312"
?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
<
beans
>
<
bean
id
=
"metrixBean"
class
=
"com.taobao.tddl.client.jdbc.TDataSource"
init-method
=
"init"
>
<
property
name
=
"appRuleFile"
value
=
"classpath:rule_local/tddl-rule.xml"
/>
<
property
name
=
"useLocalConfig"
value
=
"false"
/>
<
property
name
=
"rwDataSourcePool"
>
<
map
>
<
entry
key
=
"group_sample_0"
value
=
"atom0:r10w10"
></
entry
>
<
entry
key
=
"group_sample_1"
value
=
"atom1:r10w10"
></
entry
>
</
map
>
</
property
>
</
bean
>
<
bean
id
=
"tddlDS"