淘宝网技术架构介绍

学习目标

       1.了解淘宝架构的需求;


      2.了解淘宝技术的演变;


      3.了解架构的一些基本准则。


淘宝相关的一些数据





淘宝架构的版本演变





  V1.0架构2003.05-2004.01





  V1.0架构-问题

   数据库容量限制

      •数据稳定性

      •数据库性能问题


  V1.1架构2004.01-2004.05


   

   V1.1架构-问题


   开发效率

      •无技术积累沉淀

      •无法满足团队并行开发

      •不能满足长期持续维护

      •难以支撑高速业务发展

      •难以支撑系统可伸缩性

      •数据库连接达到上限 (每个Oracle数据库大约提供5000个链接)

  

   V2.0架构 2004.02-2005.03




  V2.0架构-以EJB为核心





  V2.0架构-WebX MVC框架

     基于Apache Turbine框架改造

         •模块化(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

      静态内容:图片,描述,js,css,静态页面

          •全国20余个站点

          •高峰30G/秒

   V2.1架构-session框架

     集中存储

         •对代码透明


   V2.2架构-需求2006.6-2007.12

     提高系统性能

        •降低存储成本

        •支持海量数据搜索

      分布式存储TFS
      
       •分布式缓存Tair

       •页面缓存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左右;



淘宝架构-回顾





   架构遵循的基本原则

     上可依赖下

         •下不可依赖上

         •平级间可以相互依赖(不推荐),禁止循环依赖

         •使用消息对系统间依赖解耦

         •简单就是美


  服务化/中心化的业务系统架构







版权声明:本文为博主原创文章,未经博主允许不得转载。

版权声明:本文为匿名原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: