文章目录
- 前言
- 阿里巴巴中文站架构发展历程
- 阿里巴巴第五代架构
- 数据架构的复杂
前言
- 由学习整理而来,并非有意抄袭。
- 如果有冒犯行为,请及时联系作者进行处理!
阿里巴巴中文站架构发展历程
时间 | 关键技术 |
---|---|
1999第一代网站架构 | Perl,CGl,Oracle |
2000进入JAVA时代 | Java,Servlet |
2001-2004EJB时代 | EJB(SLSB,CMP,MDB) Pattern(ServiceLocator,Delegate,Facade,DAO,DTO) |
2005-2007WithoutEJB重构 | 去EJB重构:Spring+iBatis+Webx,Antx,底层架构:iSearch,MQ+ESB,数据挖掘,CMS |
2008-2009海量数据 | Memcached集群,Mysql+数据切分=Cobar,分布式存储,Hadoop,KV,CDN |
2010安全,镜像 | 安全,镜像,应用服务器升级,秒杀,NoSql,SSD |
阿里巴巴第五代架构
- 敏捷
- 业务快速增长,
- 每天都要上线大量的小需求应用系统日益膨胀,耦合恶化,架构越来越复杂,会带来更高的开发成本。
- 开放
- Facebook和AppStore带来的启示,如何提升网站的开放性,吸引第三方开发者加入到网站的共建中来?
- 体验
- 网站的并发压力快速增长,用户却对体验提出了更高的要求
数据架构的复杂
- 问题
- 数据架构非常复杂,在不同的应用场景采用多种类型的数据
- 业务模型的各个字段分布在不同的数据源
- 数据架构非常复杂,在不同的应用场景采用多种类型的数据
- 难点:
- 数据类型的多样性
- 数据源多样性和变化重构
- 数据源改造而数据服务平台不需要大面积重构
- 解决方案
- 统一数据服务层UDSL
- 在网站应用集群和底层数据源之间,构建一层代理,统一数据层
- 统一数据层的特性
- 模型数据映射
- 实现业务模型各属性与底层不同类型数据源的模型数据映射
- 目前支持关系数据库,iSearch,redis,mongodb - 统一的查询和更新API
- 提供了基于业务模型的统一的查询和更新的API,简化网站应用跨不同数据源的开发模式。 - 性能优化策略
- 字段延退加载,按需返回设置
- 基于热点缓存平台的二级缓存
- 异步并行的查询数据:异步并行加载模型中来自不同数据源的字段
- 并发保护:拒绝访问频率过高的主机IP或IP段
- 模型数据映射