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