taobao_arch_qcon_2009 by luckbbs

VIEWS: 2 PAGES: 28

									基于Java构建的淘宝

          2009.3
淘宝发展历程
1200

1000

 800

 600

 400

 200
               xx部手机/天

   0
       2003    2004      2005   2006     2007      2008   2009
       V1.0
              V2.0       V2.1     V2.2
                                                V3.0
V1.0 2003.5 – 2004.10
 2003年非典时期
 马云住宅
 LAMP
 基于phpAuction
     b /   ti /li t/ i
 member/auction/list/misc
V1.0问题
连接池性能问题
不利于团队开发
不利于长期持续发展
无技术积累
V2 需求
支撑高速业务发展
支撑团队并行开发
支撑系统的可伸缩
V2.0 2004.5-2005.03
 三层结构
 自主的MVC框架
 自主的项目管理工具
  延伸Ant
 自主的搜索引擎
 php迁移至java
 mysql迁移至Oracle
V2.0 淘宝MVC框架
基于规则
模块化(car)
pipeline
pp
页面布局
统一的pull tool支持
统 的 ll t l支持
支持多模板引擎
V2.0 淘宝项目管理工具
类似maven
脚本编程语言
         g
AutoConfig
依赖管理,支持冲突检测
V2.0 搜索引擎
基于内存索引
支持复杂条件,支持统计
支持复杂条件 支持统计
非实时
有数据量限制
V2.1 的需求
降低成本
提高性能
V2.1 2005.03 – 2007.01
 weblogic迁移至jboss
 抛弃ejb
 支持分库的数据访问框架
 session框架重构
 基于BDB的缓存
        自 的
 Taobao自己的CDN
V2.1 数据可伸缩
水平
 用户
 商品
 交易
垂直
 评价
 论坛
 其他
V2.1 session框架
支持集中式、复制方式、cookie方式
对代码透明
V2.2 需求
提高系统性能
降低存储成本
支撑海量数据的搜索
V2.2 2006.10 – 2007.12
 分布式文件系统
 分布式缓存
 前端页面缓存
 搜索引擎升级
V2.2 淘宝分布式文件系统
类似GFS
支持数据紧缩
支持数据去重
V2.2 淘宝分布式缓存
基于动态哈希算法
性能超越memcache
V2.2 搜索引擎升级
水平垂直伸缩
V2 问题
上百人一起维护一个代码近百万行的核心
工程
多个业务系统中的超过1/3的核心代码重复
数据库连接达到上限
停电
V3.0 需求
支撑大型团队,丰富业务的并行开发
提高重用性
透明的数据库伸缩
可用性
开放
V3.0 2007.12 --
 数据和应用透明伸缩
 淘宝消息系统
 服务化
                  服务/消息
 产品化
 实时搜索
 可用性
 TOP(淘宝开放平台)
V3.0 数据透明伸缩
垂直(按功能)
 交易 用户 商品 店铺 评价 收费 社区
水平(按规则)
 商品 交易
透明的数据访问层
V3.0 应用透明伸缩
按功能划分
 用户 商品 交易 店铺 评价 收费 社区
无状态
应用无需关心集群
集群可调控
软件负载均衡
V3.0 消息系统
Topic方式
分组订阅
发送事务
送达率:99.99%
1亿消息/天
V3.0 服务化
服务导向框架
按功能形成服务中心
 用户 商品 交易 店铺 类目
服务中心200台服务器承载了70亿/天的请
求
V3.0 实时搜索
同步更新索引
补救机制
V3.0 可用性
同城分流
异地容灾
V4.0 ~~

								
To top