淘宝系统架构介绍 黄裳 2009.10 淘宝发展历程 0 500 1000 1500 2000 2500 2003 2004 2005 2006 2007 2008 2009 PV 全网成交 V2.2 V1.1V1.0 V2.0 V2.1 V3.0 2008年: 交易额999.6亿 注册用户9800万 卖出1.4亿件服饰 卖出1366万部手机 卖出3130万张充值卡 2008年每天: 增加800G的数据 高峰期流量超过30G/S 处理超过1000G的日志 处理40亿次的用户信息访问 缓存处理60亿次的请求 V1.0 2003.5 – 2004.1 z 非典时期 z 马云住宅 z LAMP z MySQL读写分离 Slave1 Slave2MySQL Master 复制 复制 ReadRead Read/Write Apache mod_php4 pear DB Function Apache mod_php4 pear DB Function 3 Apache mod_php4 pear DB Function 2 Apache mod_php4 pear DB Function 1 V1.1 2004.1 – 2004.5 zMySQL迁移至Oracle z引入SQL Relay中间件 Oracle Apache mod_php4 pear DB Function 4 SQL Relay Apache mod_php4 pear DB Function 3 SQL Relay Apache mod_php4 pear DB Function 2 SQL Relay Apache mod_php4 pear DB Function 1 SQL Relay V2.0 2004.2-2005.03 z php迁移至java zMVC框架WebX z项目管理工具AntX z引入搜索引擎ISearch Oracle Read/Write dump Search Node 1 Node 2 Node n…… Weblogic 淘宝MVC EJB Function 4 OR-Mapping Weblogic 淘宝MVC EJB Function 3 OR-Mapping Weblogic 淘宝MVC EJB Function 2 OR-Mapping Weblogic 淘宝MVC EJB Function 1 OR-Mapping V2.1 2004.10 – 2007.01 z weblogic迁移至jboss z 支持分库的数据访问框架 z 抛弃EJB z 引入Spring z 基于BDB的缓存 z 建立CDN cache Read/Write Read/Writedump Search Node 1 Node 2 Node n…… Oracle Oracle Oracle Oracle JBoss 淘宝MVC Spring …… OR-Mapping JBoss 淘宝MVC Spring Function 3 OR-Mapping JBoss 淘宝MVC Spring Function 2 OR-Mapping JBoss 淘宝MVC Spring Function 1 OR-Mapping V2.2 2006.10 – 2007.12 z分布式存储TFS z分布式缓存Tair z搜索引擎升级 Oracle Oracle Oracle Oracle Read/Write Search Node 1 Node 2 Node n …… Node 1 Node 2 Node n JBoss 淘宝MVC Spring …… Ibatis JBoss 淘宝MVC Spring Function 3 Ibatis JBoss 淘宝MVC Spring Function 2 Ibatis JBoss 淘宝MVC Spring Function 1 OR-Mapping cache 分布式存储 Node 1 Node 2 Node n 需求 z高稳定性 z高数据安全 z高可用性 z高容量,高性能 z高并发处理能力 z高存储容量 z低响应时间 z低成本 z硬件 z人力 处理策略 z高稳定性 z备份 z隔离 z高容量,高性能 z“人”多力量大 z分割 z异步 z成本 z提高效率 z自动化 整体策略:三角原则(CAP) 可用性 扩展性 一致性 效果 = 周长 周长和三个边长为线性关系 成本 = 面积 面积和三个边长成指数关系 当边长小于某阀值 效果 = 最小边长度 成本 V3.0 2007.12 -- z 应用透明伸缩 z Session框架 z 高性能服务框架HSF z 消息系统Notify z 业务中心建立 z数据透明伸缩 z 分布式数据层TDDL z 稳定性 z 容灾 z 成本 z 自动化 z 数据迁移到MySQL 服务/消息 V3.0 应用透明伸缩 z展现层-会话处理很重要 z粘性session zsession复制 z集中式session z不用session V3.0 应用透明伸缩 z业务层 服务 1 服务2 Node1 Node2 Node n …… 功能分组1 Node1 Node2 Node n …… 功能分组2 Node 1 Node 2 Node n …… Node 1 Node 2 Node n …… 功能分组2 Node 1 Node 2 Node n …… 功能分组3功能分组1 APPPPAPP APPPPAPP V3.0 应用透明伸缩 z业务处理 z统一和隔离 z负载均衡 z一片私有的“云” V3.0 数据透明伸缩 z容量和性能的扩展 z垂直分割 z按功能 z水平分割 z按规则 z路由 z透明化 z复制 z空间换时间 核心 业务 数据 …… 业务1 …… 业务2 …… V3.0 数据分割策略 z复杂结构的水平分割处理方案 zn策略 z2n策略 zn+1策略 z读写分离策略 好友动态 订单 帖子 数据优化策略:时空原则+28原则 z老生常谈 z空间换时间 z时间换空间 z效果和成本的平衡 V3.0 消息系统 z集群Topic方式 z发送事务 APPPP后续 处理1 APPPP后续 处理2 APPPP…… APPPP业务 系统 APPPP消息 系统 消息操作 V3.0 可用性 z同城分流 z异地容灾 zn+1原则 主机房一 主机房二 异地主机 房 数据同步 主业务 边缘业务 可切换 V3.0 自动化 A:I wanna the fried chicken! B:Sir, we will be arriving at the nearest KFC soon. 总结 z适当放弃一致性 z备份和隔离解决稳定性问题 z分割和异步解决性能问题 z自动化降低人力成本 z产品化管理 Questions?





点击后进入安全下载页,再进行实际下载。下载链接有效期 24 小时,过期会自动刷新。