tddl的使用

在使用tddl 之前首选安装 配置diamond

 

基本信息说明
appName=pay
groupKey=groupKey
dbKey=andor_qatest  备注 dbkey 为数据库名称
dbType=mysql
dbUserName=tddl

一 .动态数据源配置

TGroupDataSource 的配置
1、配置读写分离权重:
 com.taobao.tddl.jdbc.group_V2.4.1_ “ groupKey ”
 例子:
 com.taobao.tddl.jdbc.group_V2.4.1_groupKey
 配置内容如下
 andor_qatest:r10w10


TAtomDataSource 的配置(由 3 部分组成, global 、 app 、 user )

1、基本数据源信息 (global) :
 com.taobao.tddl.atom.global. “ dbKey ”
 例子:
 com.taobao.tddl.atom.global.andor_qatest
 配置内容如下
 ip=127.0.0.1
 port=3306
 dbName=andor_qatest
 dbType=mysql
 dbStatus=RW


2、数据库连接信息( app ,如果不配置时间单位,缺省为分钟):
 com.taobao.tddl.atom.app. “ appName ” . “ dbKey ”
 例子:
 com.taobao.tddl.atom.app.pay.andor_qatest
 配置内容如下
 userName=tddl
 minPoolSize=1
 maxPoolSize=2
 idleTimeout=10
 blockingTimeout=1000
 preparedStatementCacheSize=15
 connectionProperties=characterEncoding=utf-8


3、数据库密码信息 (user) :
 此处的dbKey 为dbName
 com.taobao.tddl.atom.passwd. “ dbKey ” . “ dbType ” . “ dbUserName ”
 例子:
 com.taobao.tddl.atom.passwd.andor_qatest.mysql.tddl
 配置内容如下
 encPasswd=tddl


4.配置server_topology.xml

样例
<group name="groupKey" type="MYSQL_JDBC">
</group>

5.配置mysql_schema.xml
样例
 <table name="tddl">
        <columns>
            <column name="id" type="long"/>
            <column name="create_time" type="timestamp"/>
            <column name="update_time" type="timestamp"/>
            <column name="error_info" type="string"/>
            <column name="notify_num" type="int"/>
            <column name="status" type="int"/>
            <column name="next_time" type="timestamp"/>
            <column name="notify_type" type="int"/>
            <column name="notify_params" type="string"/>
            <column name="remark" type="string"/>
        </columns>
        <primaryKey>id</primaryKey>
    </table>

6.配置rule.xml 

样例
<beans>
    <bean id="vtabroot" class="com.taobao.tddl.rule.VirtualTableRoot"
          init-method="init">
        <property name="dbType" value="MYSQL"/>
        <property name="lazyInit" value="true"/>
        <property name="tableRules">
            <map>
                <!-- 一个group 多个atom -->
                <entry key="tddl" value-ref="tddl"/>
            </map>
        </property>
    </bean>
    <!-- ===========================================mysql group============================================= -->

    <bean id="tddl" class="com.taobao.tddl.rule.TableRule">
        <property name="allowFullTableScan" value="true"/>
         <!-- 此处为 server_topology.xml 中的group name-->
        <property name="dbNamePattern" value="groupKey"/>
        <property name="tbRules" value="Math.abs(Long.valueOf(#id,1,4#)) % 4"/>
        <property name="tbNamePattern" value="tddl_{00}"/>
    </bean>


7.配置TDataSource  如下

样例
 <bean id="dataSource" class="com.taobao.tddl.matrix.jdbc.TDataSource" init-method="init">
        <property name="appName" value="pay"/>
         <property name="ruleFile" value="matrix/mysql_rule.xml"/>
        <property name="topologyFile" value="matrix/server_topology.xml"/>
        <property name="schemaFile" value="matrix/mysql_schema.xml"/>
    </bean>

 

转载于:https://my.oschina.net/u/569297/blog/420108

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer 外号:头都大了 ©_Ob)框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个基于集中式配置的 jdbc datasource实现,具有主备,读写分离,动态数据库配置等功能。 TDDL所处的位置(tddl通用数据访问层,部署在客户端的jar包,用于将用户的SQL路由到指定的数据库中): 淘宝很早就对数据进行过分库的处理, 上层系统连接多个数据库,中间有一个叫做DBRoute的路由来对数据进行统一访问。DBRoute对数据进行多库的操作、数据的整合,让上层系统像操作 一个数据库一样操作多个库。但是随着数据量的增长,对于库表的分法有了更高的要求,例如,你的商品数据到了百亿级别的时候,任何一个库都无法存放了,于是 分成2个、4个、8个、16个、32个……直到1024个、2048个。好,分成这么多,数据能够存放了,那怎么查询它?这时候,数据查询的中间件就要能 够承担这个重任了,它对上层来说,必须像查询一个数据库一样来查询数据,还要像查询一个数据库一样快(每条查询在几毫秒内完成),TDDL就承担了这样一 个工作。在外面有些系统也用DAL(数据访问层) 这个概念来命名这个中间件。下图展示了一个简单的分库分表数据查询策略: 主要优点:1.数据库主备和动态切换2.带权重的读写分离3.单线程读重试4.集中式数据源信息管理和动态变更5.剥离的稳定jboss数据源6.支持mysql和oracle数据库7.基于jdbc规范,很容易扩展支持实现jdbc规范的数据源8.无server,client-jar形式存在,应用直连数据库9.读写次数,并发度流程控制,动态变更10.可分析的日志打印,日志流控,动态变更TDDL必须要依赖diamond配置中心(diamond是淘宝内部使用的一个管理持久配置的系统,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理,同时diamond也已开源)。TDDL动态数据源使用示例说明:http://rdc.taobao.com/team/jm/archives/1645diamond简介和快速使用:http://jm.taobao.org/tag/diamond专题/TDDL源码:https://github.com/alibaba/tb_tddl TDDL复杂度相对较高。当前公布的文档较少,只开源动态数据源,分表分库部分还未开源,还需要依赖diamond,不推荐使用。 标签:TDDL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值