当前位置:  软件>java软件

分布式数据层 TDDL

    来源:    发布时间:2015-01-24

    本文导语:  淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer 外号:头都大了 ©_Ob)框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个基于集中式配置的 jdbc datasource实现,具有主备,读写分离...

淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer 外号:头都大了 ©_Ob)框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个基于集中式配置的 jdbc datasource实现,具有主备,读写分离,动态数据库配置等功能。

TDDL所处的位置(tddl通用数据访问层,部署在客户端的jar包,用于将用户的SQL路由到指定的数据库中):

分布式数据层 TDDL[图片]

淘宝很早就对数据进行过分库的处理, 上层系统连接多个数据库,中间有一个叫做DBRoute的路由来对数据进行统一访问。DBRoute对数据进行多库的操作、数据的整合,让上层系统像操作 一个数据库一样操作多个库。但是随着数据量的增长,对于库表的分法有了更高的要求,例如,你的商品数据到了百亿级别的时候,任何一个库都无法存放了,于是 分成2个、4个、8个、16个、32个……直到1024个、2048个。好,分成这么多,数据能够存放了,那怎么查询它?这时候,数据查询的中间件就要能 够承担这个重任了,它对上层来说,必须像查询一个数据库一样来查询数据,还要像查询一个数据库一样快(每条查询在几毫秒内完成),TDDL就承担了这样一 个工作。在外面有些系统也用DAL(数据访问层) 这个概念来命名这个中间件。
下图展示了一个简单的分库分表数据查询策略:

分布式数据层 TDDL[图片]

主要优点:
1.数据库主备和动态切换
2.带权重的读写分离
3.单线程读重试
4.集中式数据源信息管理和动态变更
5.剥离的稳定jboss数据源
6.支持mysql和oracle数据库
7.基于jdbc规范,很容易扩展支持实现jdbc规范的数据源
8.无server,client-jar形式存在,应用直连数据库
9.读写次数,并发度流程控制,动态变更
10.可分析的日志打印,日志流控,动态变更
TDDL必须要依赖diamond配置中心(diamond是淘宝内部使用的一个管理持久配置的系统,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理,同时diamond也已开源)。
TDDL动态数据源使用示例说明:什么是分布式? iis7站长之家
diamond简介和快速使用:http://jm.taobao.org/tag/diamond%E4%B8%93%E9%A2%98/
TDDL源码:https://github.com/alibaba/tb_tddl
TDDL复杂度相对较高。当前公布的文档较少,只开源动态数据源,分表分库部分还未开源,还需要依赖diamond,不推荐使用。


    
 
 

您可能感兴趣的文章:

  • 如何实现 coreos 下Docker 与分布式数据库结合
  • 分布式数据同步系统 Databus
  • 淘宝分布式数据库 OceanBase
  • 分布式数据存储服务器 MckoiDDB
  • 分布式文档数据库 Terrastore
  • 分布式关系型数据库 MemSQL
  • 分布式图形数据库 Titan
  • 分布式数据库 Hypertable
  • 阿里巴巴分布式数据库同步系统 otter
  • 轻量级分布式数据访问层 CobarClient
  • 分布式 key/value 数据库 JAConfig
  • 分布式大规模数据存储 Cloudata
  • 关系型数据的分布式处理系统 Cobar
  • 分布式数据源访问与集成中间件 OGSA-DAI
  • 分布式处理与网络数据传送?
  • 分布式文档存储数据库 MongoDB
  • 显示分布式地图数据的 web 客户端 GeoMOOSE
  • 企业级分布式NoSQL数据库 SequoiaDB
  • 腾讯分布式数据仓库 TDW
  • 分布式数据库 RethinkDB
  • 分布式数据仓库系统 Apache Tajo
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 分布式CAP理论介绍:一致性(Consistency),可用性(Availability),容忍网络分区(Partition tolerance)
  • 不太明白,利用RMI实现JAVA分布式应用 和 EJB实现JAVA分布式应用有什么区别。
  • FastDFS分布式文件系统介绍和FastDFS的安装配置过程
  • 什么是分布式?
  • 高性能分布式哈希表FastDHT介绍及安装配置
  • 分布式版本控制系统 Mercurial
  • 分布式文件系统 XtreemFS
  • 分布式系统的故障独立性如何理解
  • 请推荐一下轻量级的分布式文件系统源码哈
  • 分布式缓存测试框架 RadarGun
  • 分布式系统治理 JBoss Overlord
  • 分布式FTP服务器 DrFTPD
  • 分布式流处理框架 Samza
  • 分布式工程配置zookeeper化 zkconfigutil
  • 分布式系统基础架构 Hadoop
  • 分布式版本控制系统 Monotone
  • 来抢分:什么是分布式系统开发
  • 分布式系统的延迟和容错库 Hystrix
  • Clojure 分布式状态模型 Avout
  • 分布式K/V存储系统 kumofs
  • 分布式 Linux 软件管理系统 Conary


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3