您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>数值算法/人工智能>

Tdsql数据库水平拆分

大小:0.8 MB 人气: 2017-09-28 需要积分:1

  随着互联网应用的广泛普及,海量数据的存储和访问成为系统设计的瓶颈问题。对于大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。给系统的稳定性和扩展性造成了极大的问题。通过数据的切分来提高系统整体性能,扩充系统整体容量,横向扩展数据层已经成为架构研发人员首选的方式。

  2004年,腾讯开始逐步上线互联网增值服务,业务量开始第一次爆炸。计费成为所有业务都需要的一个公共服务,不再是某个服务的专属。业务量的爆炸给DB层带来了巨大的压力,原来的单机模式已经无法支撑。伴随计费公共平台的整合建设,在DB层开始引入分库分表机制:针对大的表,按照某个key预先拆成n个子表,分布在不同的机器节点上。逻辑层在访问DB时,自己根据分表逻辑将请求分发到不同的节点。在扩容时,需要手工完成子表数据的搬迁和访问路由的修改。DB层在业务狂潮之下,增加各种工具和补丁来解决容量水平扩展的问题。2012年TDSQL项目立项,目标为金融联机交易数据库。

  TDSQL(Tencent Distributed MySQL,腾讯分布式MySQL)是针对金融联机交易场景推出的高一致性、分布式数据库解决方案。产品形态为一个数据库集群,底层基于MySQL,对外的功能表现上与MySQL兼容。截至2017年,TDSQL已在公司内部关键数据领域获得广泛应用,其中之一作为Midas(米大师)核心数据库,经受了互联网交易场景的考验。Midas作为腾讯官方唯一数字业务支付平台,为公司移动App(iOSAndroid、Win phone等)、PC客户端、Web等不同场景提供一站式计费解决方案。

  水平拆分

  TDSQL规定shardkey为表拆分的依据,即进行SQL查询时,shardkey作为查询字段指明该SQL发往哪个Set(数据分片)。在分库分表之前需要Schedule初始化集群,我们这里称作一个Group。在初始化Group时要确定最初的分片大小,因而需要确定准备几套Set。例如,我们需要对逻辑表拆分成四张子表,需要我们在初始化集群时准备四个Set,同时指定每个Set的路由信息,并将这些路由信息写入ZKTdsql数据库水平拆分

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!