淘宝(taobao)架构发展历程及Web框架设计
一、淘宝系统架构
2008年,淘宝每天增加800G的数据,高峰期超过30G/s,处理超过1000G的日志,处理40亿次用户请求信息。淘宝架构发展经历了三个阶段。
第一阶段(V1.0)
采用经典的LAMP结构,mySQL采用M-S模式,实现了读写分离。后期采用了SQLrelay中间件技术。
第二阶段(V2.0):
这一阶段,用java替换了php,引入了MVC框架,使用Antx管理项目,使用了搜索引擎ISearch。在后期,逐渐引入了SPring框架,抛弃了EJB;对数据库实现分库存储;使用了分布式存储和分布式缓存,对搜索引擎升级。
第三阶段(V3.0):
在现有框架下增加了应用透明性和数据透明伸缩性的尝试。在应用透明性方面,有了session框架,高性能服务框架HSF,消息系统Notify,建立了业务中心;在数据库透明伸缩性方面,引入分布式数据层TDDL。
二、WEB架构设计
WEB应用一般采用分层结构,服务器端主要包括展现层、业务逻辑层和持久层。
1.展现层要实现可扩展,关键是session的处理。
2.业务逻辑层要实现透明可扩展
* 建立领域模型
* 统一、隔离
* 无状态业务层
* 负载均衡
3.持久层透明可扩展
* 数据库按功能垂直分割,按规则水平分割
* 时间换空间或空间换时间
* 牺牲一定的一致性
* 二八原则
三、关键技术
1.session处理方式
* 粘性session
* session复制
* 集中式session
* 不是有session
2.分布式存储
分布式存储是相对于集中式存储的一种处理方式,把数据存在在不同的节点上,通过查询位置服务器找到数据所在的节点。提高数据存储的可扩展性和查询效率。
3.分布式缓存