互联网公司技术架构资料.淘宝.技术架构介绍


淘宝系统架构介绍 黄裳 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 非典时期 马云住宅 LAMP 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 MySQL迁移至Oracle 引入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 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 淘宝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/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 分布式存储TFS 分布式缓存Tair 搜索引擎升级 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 需求 高稳定性 高数据安全 高可用性 高容量,高性能 高并发处理能力 高存储容量 低响应时间 低成本 硬件 人力 处理策略 高稳定性 备份 隔离 高容量,高性能 “人”多力量大 分割 异步 成本 提高效率 自动化 整体策略:三角原则(CAP) 可用性 扩展性 一致性 效果 = 周长 周长和三个边长为线性关系 成本 = 面积 面积和三个边长成指数关系 当边长小于某阀值 效果 = 最小边长度 成本 V3.0 2007.12 -- 应用透明伸缩 Session框架 高性能服务框架HSF 消息系统Notify 业务中心建立 数据透明伸缩 分布式数据层TDDL 稳定性 容灾 成本 自动化 数据迁移到MySQL 服务/消息 V3.0 应用透明伸缩 展现层-会话处理很重要 粘性session session复制 集中式session 不用session V3.0 应用透明伸缩 业务层 服务 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 APPAPPAPP APPAPPAPP V3.0 应用透明伸缩 业务处理 统一和隔离 负载均衡 一片私有的“云” V3.0 数据透明伸缩 容量和性能的扩展 垂直分割 按功能 水平分割 按规则 路由 透明化 复制 空间换时间 核心 业务 数据 …… 业务1 …… 业务2 …… V3.0 数据分割策略 复杂结构的水平分割处理方案 n策略 2n策略 n+1策略 读写分离策略 好友动态 订单 帖子 数据优化策略:时空原则+28原则 老生常谈 空间换时间 时间换空间 效果和成本的平衡 V3.0 消息系统 集群Topic方式 发送事务 APPAPP后续 处理1 APPAPP后续 处理2 APPAPP…… APPAPP业务 系统 APPAPP消息 系统 消息操作 V3.0 可用性 同城分流 异地容灾 n+1原则 主机房一 主机房二 异地主机 房 数据同步 主业务 边缘业务 可切换 V3.0 自动化 A:I wanna the fried chicken! B:Sir, we will be arriving at the nearest KFC soon. 总结 适当放弃一致性 备份和隔离解决稳定性问题 分割和异步解决性能问题 自动化降低人力成本 产品化管理 Questions?
还剩22页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 4 人已下载

下载pdf