淘宝Taobao Arch Qcon 2009

28
基于Java构建的淘宝 基于Java构建的淘宝 2009.3

Transcript of 淘宝Taobao Arch Qcon 2009

Page 1: 淘宝Taobao Arch Qcon 2009

基于Java构建的淘宝基于Java构建的淘宝

2009.3

Page 2: 淘宝Taobao Arch Qcon 2009

淘宝发展历程1200

800

1000

600

800

200

400

xx部手机/天

02003 2004 2005 2006 2007 2008 2009V1.0 V2.0 V2.1

V3.0V2.2

Page 3: 淘宝Taobao Arch Qcon 2009

V1.0 2003.5 – 2004.102003年非典时期

马云住宅马云住宅

LAMP基于phpAuction

b / ti /li t/ imember/auction/list/misc

Page 4: 淘宝Taobao Arch Qcon 2009

V1.0问题

连接池性能问题

不利于团队开发不利于团队开发

不利于长期持续发展

无技术积累

Page 5: 淘宝Taobao Arch Qcon 2009

V2 需求

支撑高速业务发展

支撑团队并行开发支撑团队并行开发

支撑系统的可伸缩

Page 6: 淘宝Taobao Arch Qcon 2009

V2.0 2004.5-2005.03三层结构

自主的MVC框架自主的MVC框架

自主的项目管理工具

延伸Ant自主的搜索引擎自主的搜索引擎

php迁移至javamysql迁移至Oracle

Page 7: 淘宝Taobao Arch Qcon 2009

V2.0 淘宝MVC框架

基于规则

模块化(car)模块化(car)pipelinep p页面布局

统 的 ll t l支持统一的pull tool支持

支持多模板引擎支持多模板引擎

Page 8: 淘宝Taobao Arch Qcon 2009

V2.0 淘宝项目管理工具

类似maven脚本编程语言脚本编程语言

AutoConfigg依赖管理,支持冲突检测

Page 9: 淘宝Taobao Arch Qcon 2009

V2.0 搜索引擎

基于内存索引

支持复杂条件 支持统计支持复杂条件,支持统计

非实时

有数据量限制

Page 10: 淘宝Taobao Arch Qcon 2009

V2.1 的需求

降低成本

提高性能提高性能

Page 11: 淘宝Taobao Arch Qcon 2009

V2.1 2005.03 – 2007.01weblogic迁移至jboss抛弃ejb抛弃ejb支持分库的数据访问框架

session框架重构

基于BDB的缓存基于BDB的缓存

Taobao自己的CDN自 的

Page 12: 淘宝Taobao Arch Qcon 2009

V2.1 数据可伸缩

水平

用户用户

商品

交易

垂直垂直

评价

论坛论坛

其他

Page 13: 淘宝Taobao Arch Qcon 2009

V2.1 session框架

支持集中式、复制方式、cookie方式

对代码透明对代码透明

Page 14: 淘宝Taobao Arch Qcon 2009

V2.2 需求

提高系统性能

降低存储成本降低存储成本

支撑海量数据的搜索

Page 15: 淘宝Taobao Arch Qcon 2009

V2.2 2006.10 – 2007.12分布式文件系统

分布式缓存分布式缓存

前端页面缓存

搜索引擎升级

Page 16: 淘宝Taobao Arch Qcon 2009

V2.2 淘宝分布式文件系统

类似GFS支持数据紧缩支持数据紧缩

支持数据去重

Page 17: 淘宝Taobao Arch Qcon 2009

V2.2 淘宝分布式缓存

基于动态哈希算法

性能超越memcache性能超越memcache

Page 18: 淘宝Taobao Arch Qcon 2009

V2.2 搜索引擎升级

水平垂直伸缩

Page 19: 淘宝Taobao Arch Qcon 2009

V2 问题

上百人一起维护一个代码近百万行的核心工程工程

多个业务系统中的超过1/3的核心代码重复

数据库连接达到上限

停电停电

Page 20: 淘宝Taobao Arch Qcon 2009

V3.0 需求

支撑大型团队,丰富业务的并行开发

提高重用性提高重用性

透明的数据库伸缩

可用性

开放开放

Page 21: 淘宝Taobao Arch Qcon 2009

V3.0 2007.12 --数据和应用透明伸缩

淘宝消息系统淘宝消息系统

服务化

产品化

实时搜索

服务/消息

实时搜索

可用性可用性

TOP(淘宝开放平台)

Page 22: 淘宝Taobao Arch Qcon 2009

V3.0 数据透明伸缩

垂直(按功能)

交易 用户 商品 店铺 评价 收费 社区交易 用户 商品 店铺 评价 收费 社区

水平(按规则)

商品 交易

透明的数据访问层透明的数据访问层

Page 23: 淘宝Taobao Arch Qcon 2009

V3.0 应用透明伸缩

按功能划分

用户 商品 交易 店铺 评价 收费 社区用户 商品 交易 店铺 评价 收费 社区

无状态

应用无需关心集群

集群可调控集群可调控

软件负载均衡

Page 24: 淘宝Taobao Arch Qcon 2009

V3.0 消息系统

Topic方式

分组订阅分组订阅

发送事务

送达率:99.99%1亿消息/天1亿消息/天

Page 25: 淘宝Taobao Arch Qcon 2009

V3.0 服务化

服务导向框架

按功能形成服务中心按功能形成服务中心

用户 商品 交易 店铺 类目

服务中心200台服务器承载了70亿/天的请求求

Page 26: 淘宝Taobao Arch Qcon 2009

V3.0 实时搜索

同步更新索引

补救机制补救机制

Page 27: 淘宝Taobao Arch Qcon 2009

V3.0 可用性

同城分流

异地容灾异地容灾

Page 28: 淘宝Taobao Arch Qcon 2009

V4.0 ~~