TDDL分库分表详细配置与使用指南

4星 · 超过85%的资源 需积分: 15 105 下载量 131 浏览量 更新于2024-09-15 收藏 977KB DOCX 举报
"Tddl详细使用解说" TDDL(Taobao Distributed Data Layer)是阿里巴巴开源的一款分布式数据库中间件,主要用于解决大规模分布式环境下的数据库访问问题。它提供了数据分库分表、读写分离、动态数据源等功能,使得应用程序能够透明地访问分布式数据库。 ### 推荐版本 对于TDDL,推荐使用的版本是`3.0.1.1`,这可以通过以下Maven依赖添加到项目中: ```xml <dependency> <groupId>com.taobao.tddl</groupId> <artifactId>tddl-client</artifactId> <version>3.0.1.1</version> </dependency> ``` 对于`TDDL-SEQUENCE`,推荐版本是`3.0.0-SNAPSHOT`,用于处理序列号生成,依赖如下: ```xml <dependency> <groupId>com.taobao.tddl</groupId> <artifactId>tddl-sequence</artifactId> <version>3.0.0-SNAPSHOT</version> </dependency> ``` ### 新用TDDL分库分表 #### 1.1 使用动态数据源 动态数据源是TDDL的核心特性之一,它允许动态调节IP、密码、读写权重,并支持增库和主备切换。配置时,`appName`应设置为应用的名称,以避免与其他应用冲突。数据库配置存储在持久配置中心如Diamond中,由DBA负责维护。应用开发者无需关心具体配置,只需知道数据库的基本信息。 配置完成后,可以在如下系统中查看数据库配置详情: - Matrix管理:显示应用使用的数据分组。 - Group管理:展示数据源的读写权重关系。 - Global管理:提供数据源的IP、端口、用户信息以及使用该数据源的应用配置。 #### 1.2 使用本地数据源 如果不需动态调节功能,可以选择使用本地数据源。这种方式不包含动态调节IP、密码、读写权重变换、增库和主备切换。配置相对简单,但灵活性较低。 ### 配置规则 配置规则是TDDL的关键部分,它决定了数据如何分库分表。TDDL使用一种叫做“Rule”的配置来定义分片策略,例如基于哈希值、范围或者自定义策略。通常,你需要定义分片键(决定数据分布的字段)和分片策略(如MOD、HASH等)。 ### 总结 TDDL通过提供动态数据源和本地数据源,适应了不同的应用场景需求。动态数据源适合大规模分布式环境,而本地数据源则适用于对灵活性要求不高的场景。正确配置TDDL,可以使应用无缝接入分布式数据库系统,提高系统的可扩展性和可用性。在实际使用中,应与DBA紧密协作,确保配置的准确性和安全性。
2019-07-16 上传
淘宝根据自己的业务特点开发了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