淘宝分布式数据层的关键要点####一、发展历程- 前期(2005年): - 初始架构:采用了ORACLE+IBM小型机+EMC高端存储。 - 水平分库:开始进行数据的水平拆分,以减轻单一数据库压力和开发人员负担。 - common-dao:基于数据库标识或用户ID的路由方式实现水平分库。 - 服务化阶段(2007年): - 挑战:数据库连接数和逻辑重复分布在不同应用中。 - 解决方案:实现业务中心化的服务化架构,提升业务核心的稳定性和一致性,减轻数据库连接数。 - 正式推出(2008年): - 读写分离:应对大数据量和高访问量,采用数据库自身复制功能,并由应用程序选择读写库。 - 非对称数据复制:通过Master日志解析或SQL操作拦截进行数据复制。 ####二、关键技术与演进- TDDL 1.0 (淘宝分布式数据层): - 技术特点:API简陋,需用户自行进行SQL语法分析。 - 部署方式:部署为Jar包在应用程序端,无独立服务端。初始数据复制基于消息中间件。 - 性能表现:满足业务需求,大多数情况下数据复制延迟低于200ms。 - 演进(2009年): - 技术改进:解决SQL解析问题,弃用简陋API;支持SQL路由规则,实现规则与代码分离。 - MySQL引入:考虑到Oracle分表分库问题,开始使用MySQL作为非核心业务数据存储。 - TDDL增强: -支持复杂路由规则。 -引入唯一主键机制。 -提升整体易用性。 - 成功案例:成功将一个业务系统从Oracle迁移到MySQL,为淘宝节省成本超过500万元。 - 核心业务处理方案: -写库仍使用Oracle,保证数据一致性和安全性。 -读库则采用MySQL。