淘宝网技术架构介绍
淘宝网技术架构介绍
学习目标:
1.了解淘宝架构的需求;
2.了解淘宝技术的演变;
3.了解架构的一些基本准则。
淘宝相关的一些数据
淘宝架构的版本演变
V1.0架构2003.05-2004.01
V1.0架构-问题
•数据库容量限制
•数据稳定性
•数据库性能问题
V1.1架构-问题
•开发效率
•无技术积累沉淀
•无法满足团队并行开发
•不能满足长期持续维护
•难以支撑高速业务发展
•难以支撑系统可伸缩性
•数据库连接达到上限 (每个Oracle数据库大约提供5000个链接)
V2.0架构 2004.02-2005.03
V2.0架构-以EJB为核心
V2.0架构-WebX MVC框架
•模块化(car)
•基于管道流(pipeline)的架构
•页面布局(Screen Layout Control)
•基于模板的页面渲染(JSP,Velocity,Freemarker)
V2.0架构-项目管理工具AntX
•类似Maven
•Ant ++
•AutoConfig
•页面布局(Screen Layout Control)
•基于模板的页面渲染(JSP,Velocity,Freemarker)
V2.0架构-问题
•性能
•提高开发效率
•AutoConfig
•降低成本
V2.1架构-2004.10-2007.01
V2.1逻辑架构-以Spring为核心
V2.1架构-TBStore
•基于Key-Value的高速缓存
•中心化缓存存储
•多种缓存策略
V2.1架构-TaobaoCDN
•全国20余个站点
•高峰30G/秒
V2.1架构-session框架
•集中存储
•对代码透明
V2.2架构-需求2006.6-2007.12
•提高系统性能
•降低存储成本
•支持海量数据搜索
•页面缓存ESI
•搜索引擎升级
V2.2架构分布式文件存储TFS
•类似GFS
•数据压缩
•数据去重
•每天增长300G
V2.2架构-TDBM/Tair
•基于一致性hash算法
•类似memcached
•多种缓存策略
•容灾
V2.2架构-搜索引擎
•切分
V2.2架构-问题
•多个业务系统中1/3核心业务代码重复
•所有数据库都需要关注拆分原则
•数据库连接达到上限
V3.0架构-2007.12-?
•数据访问层TDDL
•面向服务框架HSF
•消息系统Notify
•Oracle->mysql
•监控-哈勃
V3.0架构-逻辑结构
V3.0架构-数据透明收缩-数据库层
V3.0架构-服务化HSF
•服务导向框架
•中心化/产品化管理
•70亿/天的请求量
V3.0架构-消息系统Notify
•Topic方式
•发送事务
•2亿消息/天
•送达率99.99%
V3.0架构-可用性
•同城容灾
•异地容灾
V3.0架构-哈勃监控系统
V3.0架构-哈勃监控系统-特征
•超轻量级HubAgent
HubAgent是一个基于揑件模式轻量级HTTP服务,可以通过增加揑件的方式进行扩展,目前已提供“增量日志获取”,“外部程序(脚本)调用”,“进程&线程探测”,“端口探测”等多种服务。系统使用Python开发,不依赖第三方系统,可以安装在仸何linux服务器上。
•分布式的分析系统
分析系统使用MapReduce的编程模型,对大量的监控数据进行幵行处理。系统将采用松耦合的Master-Slave模式,Master处于被劢状态,只负责仸务的生成和合幵,不需要关心仸务分派。系统设计更加简单、灵活,通过增加Slave即可得到水平扩展能力。
•Cassandra数据存储
系统使用Cassandra来实现大量监控数据的分布式存储,Cassandra具有模式灵活,扩展性强,具有多维数据。
V3.0架构-哈勃监控系统-使用情况
•应用情况
目前以接入包括主站和广告在内的350多个应用,配置了超过1500个仸务和3000多张监控报表。能为应用的集群指标提供30天的明细数据,单机提供7天的明细数据;每小时的统计数据保存1年和每天的统计数据永久保存。
•系统情况
HubAgent已经安装超过3500台,基本覆盖了主站的应用服务器。
目前有1台Master服务器和7台Slave服务器用于数据分析。 master的流量在5Mbps,Slave合计的平均网络
流量60Mbps(峰值120Mbps),平均每天处理约4T的原始数据。
目前有5台Cassandra服务器,350G左右的数据存储量,每天的数据增量在25G左右;