Zdal分库分表:支付宝是如何在分布式环境下完爆数据库压力的?

Zdal是支付宝的自研数据中间件,提供分库分表、结果集合并等功能,支持多种数据库,用于解决数据库压力。系统包含Zdal-client、Zdal-parser、Zdal-rule等组件,实现数据路由、存储扩展和数据库灾备,已在支付宝关键应用上稳定运行。
摘要由CSDN通过智能技术生成

Zdal是支付宝自主研发的数据中间件产品,采用标准的JDBC规范,可以在分布式环境下看上去像传统数据库一样提供海量数据服务,是一种通用的分库分表数据库访问框架,解决单库单表数据库访问压力,Zdal主要提供分库分表,结果集合并,sql解析,数据库failover动态切换等功能,提供互联网金融行业的数据访问层统一解决方案,目前已经在支付宝的交易,支付,会员,金融等大部分关键应用上使用,并且在2019双11大促中运行稳定。

系统目标

1.数据访问路由,将针对数据的读写请求发送到最合适的地方。

2.数据存储的自由扩展,不再受限于单台机器的容量瓶颈和速度瓶颈,平滑迁移。

3.使用zdal组件进行数据库的拆分,搭建分布式环境下的海量数据访问平台。

4.实现mysql,oracle,DB2数据库访问能力。

系统架构和领域模型

系统整体架构

Zdal分库分表:支付宝是如何在分布式环境下完爆数据库压力的?

 

zdal组件主要有5部分组成:

1. Zdal-client:开发编程接口,实现jdbc的Datasource,Connection,Statement,PreparedStatement,ResultSet等接口,实现通用的jdbc-sql访问,内部还实现读库重试,group数据源的选择器,表名替换,sql执行器等功能。

2. Zdal-parser:支持oracle/mysql/db2等数据库的sql语句解析,并且缓存。根据规则引擎提供的参数列表,在指定的sql中查找到需要的参数,然后返回拆分字段。

3. Zdal-rule:根据zdal-parser解析后的拆分字段值来确定逻辑库和物理表名。

4. Zdal-datasource:数据库连接的管理,支持mysql,oracle,db2数据库的连接管理。

5. Zdal-common:zdal组件所使用的一些公共组件类。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值