SlideShare a Scribd company logo
1 of 28
Download to read offline
基于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
 member/auction/list/misc
     b /   ti /li t/ i
V1.0问题
连接池性能问题
不利于团队开发
不利于长期持续发展
无技术积累
V2 需求
支撑高速业务发展
支撑团队并行开发
支撑系统的可伸缩
V2.0 2004.5-2005.03
 三层结构
 自主的MVC框架
 自主的项目管理工具
  延伸Ant
 自主的搜索引擎
 php迁移至java
 mysql迁移至Oracle
V2.0 淘宝MVC框架
基于规则
模块化(car)
pp
pipeline
页面布局
统一的pull tool支持
统 的 ll t l支持
支持多模板引擎
V2.0 淘宝项目管理工具
类似maven
脚本编程语言
AutoConfig
         g
依赖管理,支持冲突检测
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 ~~

More Related Content

Similar to 淘宝Taobao Arch Qcon 2009

跨浏览器客户端技术预研
跨浏览器客户端技术预研跨浏览器客户端技术预研
跨浏览器客户端技术预研Henry Lee
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲ArBing Xie
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型裕波 周
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)锐 张
 
淘宝彩票移动项目开发实践
淘宝彩票移动项目开发实践淘宝彩票移动项目开发实践
淘宝彩票移动项目开发实践alvis-m
 
IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计Xi Zeng
 
Jswebapps
JswebappsJswebapps
Jswebappsjay li
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTarget Source
 
SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 twMVC
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabricJohn Chang
 
常用Js框架比较
常用Js框架比较常用Js框架比较
常用Js框架比较Adam Lu
 
实时Web的前世今生未来
实时Web的前世今生未来实时Web的前世今生未来
实时Web的前世今生未来RolfZhang
 
MobileWebAppFramework_V5_design
MobileWebAppFramework_V5_designMobileWebAppFramework_V5_design
MobileWebAppFramework_V5_designJackson Tian
 
Ajax框架:Dwr》实战(包括整合)
Ajax框架:Dwr》实战(包括整合)Ajax框架:Dwr》实战(包括整合)
Ajax框架:Dwr》实战(包括整合)yiditushe
 
第一节课:web前端技术程序员编程能力成长之路
第一节课:web前端技术程序员编程能力成长之路第一节课:web前端技术程序员编程能力成长之路
第一节课:web前端技术程序员编程能力成长之路Tommy Chang
 
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC
 
My sql overview 2012 04-25 by scott chen - 30min - tw-1
My sql overview 2012 04-25 by scott chen - 30min - tw-1My sql overview 2012 04-25 by scott chen - 30min - tw-1
My sql overview 2012 04-25 by scott chen - 30min - tw-1Ivan Tu
 
Angular js入门分享 by 王栋
Angular js入门分享   by 王栋Angular js入门分享   by 王栋
Angular js入门分享 by 王栋栋 王
 
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 JavaIKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java建興 王
 
02.wls概览
02.wls概览02.wls概览
02.wls概览Meng He
 

Similar to 淘宝Taobao Arch Qcon 2009 (20)

跨浏览器客户端技术预研
跨浏览器客户端技术预研跨浏览器客户端技术预研
跨浏览器客户端技术预研
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
 
淘宝彩票移动项目开发实践
淘宝彩票移动项目开发实践淘宝彩票移动项目开发实践
淘宝彩票移动项目开发实践
 
IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计
 
Jswebapps
JswebappsJswebapps
Jswebapps
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
 
SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 
常用Js框架比较
常用Js框架比较常用Js框架比较
常用Js框架比较
 
实时Web的前世今生未来
实时Web的前世今生未来实时Web的前世今生未来
实时Web的前世今生未来
 
MobileWebAppFramework_V5_design
MobileWebAppFramework_V5_designMobileWebAppFramework_V5_design
MobileWebAppFramework_V5_design
 
Ajax框架:Dwr》实战(包括整合)
Ajax框架:Dwr》实战(包括整合)Ajax框架:Dwr》实战(包括整合)
Ajax框架:Dwr》实战(包括整合)
 
第一节课:web前端技术程序员编程能力成长之路
第一节课:web前端技术程序员编程能力成长之路第一节课:web前端技术程序员编程能力成长之路
第一节课:web前端技术程序员编程能力成长之路
 
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸
 
My sql overview 2012 04-25 by scott chen - 30min - tw-1
My sql overview 2012 04-25 by scott chen - 30min - tw-1My sql overview 2012 04-25 by scott chen - 30min - tw-1
My sql overview 2012 04-25 by scott chen - 30min - tw-1
 
Angular js入门分享 by 王栋
Angular js入门分享   by 王栋Angular js入门分享   by 王栋
Angular js入门分享 by 王栋
 
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 JavaIKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
 
02.wls概览
02.wls概览02.wls概览
02.wls概览
 

More from yiditushe

Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要yiditushe
 
J Bpm4 1中文用户手册
J Bpm4 1中文用户手册J Bpm4 1中文用户手册
J Bpm4 1中文用户手册yiditushe
 
性能测试实践2
性能测试实践2性能测试实践2
性能测试实践2yiditushe
 
性能测试实践1
性能测试实践1性能测试实践1
性能测试实践1yiditushe
 
性能测试技术
性能测试技术性能测试技术
性能测试技术yiditushe
 
Load runner测试技术
Load runner测试技术Load runner测试技术
Load runner测试技术yiditushe
 
J2 ee性能测试
J2 ee性能测试J2 ee性能测试
J2 ee性能测试yiditushe
 
面向对象的Js培训
面向对象的Js培训面向对象的Js培训
面向对象的Js培训yiditushe
 
Flex3中文教程
Flex3中文教程Flex3中文教程
Flex3中文教程yiditushe
 
开放源代码的全文检索Lucene
开放源代码的全文检索Lucene开放源代码的全文检索Lucene
开放源代码的全文检索Luceneyiditushe
 
基于分词索引的全文检索技术介绍
基于分词索引的全文检索技术介绍基于分词索引的全文检索技术介绍
基于分词索引的全文检索技术介绍yiditushe
 
Lucene In Action
Lucene In ActionLucene In Action
Lucene In Actionyiditushe
 
Lucene2 4学习笔记1
Lucene2 4学习笔记1Lucene2 4学习笔记1
Lucene2 4学习笔记1yiditushe
 
Lucene2 4 Demo
Lucene2 4 DemoLucene2 4 Demo
Lucene2 4 Demoyiditushe
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践yiditushe
 
Lucene 3[1] 0 原理与代码分析
Lucene 3[1] 0 原理与代码分析Lucene 3[1] 0 原理与代码分析
Lucene 3[1] 0 原理与代码分析yiditushe
 
7 面向对象设计原则
7 面向对象设计原则7 面向对象设计原则
7 面向对象设计原则yiditushe
 
10 团队开发
10  团队开发10  团队开发
10 团队开发yiditushe
 
9 对象持久化与数据建模
9  对象持久化与数据建模9  对象持久化与数据建模
9 对象持久化与数据建模yiditushe
 
8 Uml构架建模
8  Uml构架建模8  Uml构架建模
8 Uml构架建模yiditushe
 

More from yiditushe (20)

Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要
 
J Bpm4 1中文用户手册
J Bpm4 1中文用户手册J Bpm4 1中文用户手册
J Bpm4 1中文用户手册
 
性能测试实践2
性能测试实践2性能测试实践2
性能测试实践2
 
性能测试实践1
性能测试实践1性能测试实践1
性能测试实践1
 
性能测试技术
性能测试技术性能测试技术
性能测试技术
 
Load runner测试技术
Load runner测试技术Load runner测试技术
Load runner测试技术
 
J2 ee性能测试
J2 ee性能测试J2 ee性能测试
J2 ee性能测试
 
面向对象的Js培训
面向对象的Js培训面向对象的Js培训
面向对象的Js培训
 
Flex3中文教程
Flex3中文教程Flex3中文教程
Flex3中文教程
 
开放源代码的全文检索Lucene
开放源代码的全文检索Lucene开放源代码的全文检索Lucene
开放源代码的全文检索Lucene
 
基于分词索引的全文检索技术介绍
基于分词索引的全文检索技术介绍基于分词索引的全文检索技术介绍
基于分词索引的全文检索技术介绍
 
Lucene In Action
Lucene In ActionLucene In Action
Lucene In Action
 
Lucene2 4学习笔记1
Lucene2 4学习笔记1Lucene2 4学习笔记1
Lucene2 4学习笔记1
 
Lucene2 4 Demo
Lucene2 4 DemoLucene2 4 Demo
Lucene2 4 Demo
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
 
Lucene 3[1] 0 原理与代码分析
Lucene 3[1] 0 原理与代码分析Lucene 3[1] 0 原理与代码分析
Lucene 3[1] 0 原理与代码分析
 
7 面向对象设计原则
7 面向对象设计原则7 面向对象设计原则
7 面向对象设计原则
 
10 团队开发
10  团队开发10  团队开发
10 团队开发
 
9 对象持久化与数据建模
9  对象持久化与数据建模9  对象持久化与数据建模
9 对象持久化与数据建模
 
8 Uml构架建模
8  Uml构架建模8  Uml构架建模
8 Uml构架建模
 

淘宝Taobao Arch Qcon 2009