首页 > 数据库 > > TDDL & DRDS
有三种技术可以应对不断增大的数据量:
数据库中间件详解 这篇文章不只介绍了上述三种技术,还道明了数据库中间件设计的两种方案:基于代理服务器的 proxy 模式(需要对接不同数据源、不同应用技术栈的通信协议,必须保持高可用,隔离租户);基于封装 连接池或者 driver 为 sdk 的 smart-client 模式(需要对接不同数据源的通信协议,不需要对接不同应用技术栈的通信协议,天然去中心化)。TDDL 基于 smart-client 模式。DRDS 基于 proxy 模式。

淘宝分布式数据层 Taobao Distributed Data Layer 位于持久层和数据库之间(持久层只关心对数据源的 CRUD 操作,而多数据源的访问并不应该由它来关心),它直接与数据库进行通信。它属于数据访问层(DAL 层),同类产品有 Hibernate Shards、Ibatis-Sharding 等。它基于集中式配置的 JDBC DataSource 实现,对持久层提交的 sql 只拼装不解析。TDDL 主要解决了以下问题:

TDDL 是一个客户端 jar,它的结构主要分为三层:

其他结构包含:
TDDL剖析 这篇文章介绍了基于 TDDL 已开源的模块以及 diamond 实现主备分离、分库分表逻辑的方法。
分布式关系型数据库服务 Distributed Relational Database Service 的前身是 TDDL。它支持垂直拆分和水平拆分,因此有良好的扩展性;它通过两阶段提交支持分布式事务(此时 DRDS 服务器作为事务管理器,首先等待所有 MySQL 服务器 PREPARE 成功,然后再向各个 MySQL 服务器发送 COMMIT 请求。如果事务中的 SQL 仅涉及单个分片,DRDS 会将其作为单机事务直接下发给 MySQL;反之才会升级为分布式事务);它允许增加 RDS 实例的数量,以达到平滑扩容的效果;它支持读写分离,强读(显式事务中的读请求和写入操作将在主实例中执行,弱读在只读实例中执行;它支持通过全局二级索引能力创建二级索引表,以应对业务上的快速索引查询需求。计算能力上,DRDS 额外扩展了单机并行处理器(SMP,Symmetric Multi-Processing)和多机并行处理器(DAG),前者完全集成在 DRDS 内核中,后者,DRDS 构建了一个计算集群,运行时动态获取执行计划进行分布式计算,通过增加节点提升计算能力。

今天我只是搬运工。
分布式数据库中间件TDDL、Amoeba、Cobar、MyCAT架构比较
来自:https://zhuanlan.zhihu.com/p/100291291
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26692020/viewspace-3127094/ ,如需转载,请注明出处,否则将追究法律责任。