zoukankan      html  css  js  c++  java
  • 【淘宝技术这十年】,读后总结篇

    一看就是一天,晚饭忘了吃了。

    由于里面涉及的技术确实颇有传奇色彩。

    突然认为,没有时间看书,并且须要补充技术营养的技术宅来说,勤奋的渣渣我来提供福利了,萃取一些精华分享给大家吧再见


    --------start----------------------------------------


    1.2007年分布式文件系统TFSTaoBao File System---->解决淘宝文件图片资源载入慢的问题

    2Tair(淘宝自行研发的分布式KV存储方案)---->宝贝快照

    3.淘宝研发了TimeTunnel,用于进行实时的传输数据---->为了高速、及时、同步地传输日志数据

    4.云梯的基于Hadoop的由3000多台server组成的超大规模数据系统。ODPS系统的数据系统--->不断地进行分析和挖掘用户数据(交易,浏览,操作日志等)

    5.MVC框架是阿里的WebX,控制层用了EJB,持久层是ibatis

    6.淘宝网将图片处理与缓存编写成基于Nginx的模块

    7.淘宝网使用GraphicsMagick进行图片处理,採用了面向小对象的缓存文件系统。前端有LVS+Haproxy将原图和其全部的缩略图请求都调度到同一台Image Server(图片server)。

    8.在文件定位上。内存用Hash算法做索引,最多一次读盘。

    另外会有非常多同样的图片反复上传上来,去除反复文件也是採用Hash算法来做

    9.ESI是一种数据缓冲/缓存server,它提供将Web网页的部分(这里指页面的片段)进行缓冲/缓存的技术及服务

    10.ESI是一种数据缓冲/缓存server,它提供将Web网页的部分(这里指页面的片段)进行缓冲/缓存的技术及服务

    11.UIC的一个缓存系统,取名叫做TDBMTDBM抛弃了Berkeley DB的持久功能,数据所有存放在内存中。

    12.因为TDBMTBstore的数据接口和用途都非常相似,开发团队把二者合并。推出了淘宝自创的Key-Value缓存系统——TairTaoBao Pair的意思。PairKey-Value数据对)。Tair包含缓

    存和持久化两种存储功能。

    Tair作为一个分布式系统,由一个中心控制节点和一系列的服务节点组成。我们称中心控制节点为Config Server。服务节点是Data ServerConfig Server 负责管理所

    有的Data Server。维护Data Server的状态信息。

    Data Server 对外提供各种数据服务,并以心跳的形式将自身的状况汇报给ConfigServerConfig Server是控制点,并且是单点。眼下採用一主一备

    的形式来保证其可靠性。

    全部的Data Server 地位都是等价的。

    13.在商品分类方面。从系统的角度来看。建立了“属性”这样一个数据结构,因为除了类目的子节点有属性外。父节点也可能有属性。于是类目属性合起来也是一个结构化的数据对象。

    把它独立出来作为一个服务,叫做CatserverCategory Server)。跟类目属性密切关联的商品搜索功能独立出来,叫做Hesper(金星)。CatserverHesper供淘宝的前后台系统调用。

    14.因为季节不同,商品文件夹在前台须要依据运营者制定,后台还是自然文件夹存储。改造后的类目属性服务取名为Forest(森林,与类目属性有点神似。Catserver还用于提供卖家授权、品牌服务、关键词等相关的服务)。

    类目属性的服务化是淘宝在系统服务化方面做的第一个探索。

    15.中间件系统,一种是实时调用的中间件(淘宝的HSF,高性能服务框架),一种是异步消息通知的中间件(淘宝的Notify

    16.HSF



    这就是HSF的设计思想。服务的提供者启动时通过HSF框架向ConfigServer(类似超市的电视机)注冊服务信息(接口、版本号、超时时间、序列化方式等),这样ConfigServer上面就定义了全部可供调用的服务(同一个服务也可能有不同的版本号);服务调用者启动的时候向ConfigServer注冊对哪些服务感兴趣(接口、版本号),当服务提供者的信息变化时,ConfigServer向对应的感兴趣的服务调用者推送新的服务信息列表;调用者在调用时则依据服务信息的列表直接訪问对应的服务提供者,而无须经过ConfigServer。我们注意到ConfigServer并不会把服务提供者的IP地址推送给服务的调用者,HSF框架会依据负载状况来选择详细的server,返回结果给调用者。这不仅统一了服务调用的方式,也

    实现了“软负载均衡”。平时ConfigServer通过和服务提供者的心跳来感应服务提供者的存活状态。

    17.Notify

     

    NotifyServer在ConfigServer上面注冊消息服务。消息的client通过ConfigServer订阅消息服务。某个client调用NotifyServer发送一条消息,NotifyServer负责把消息发送到全部订阅这个消息的client(这个过程參照HSF一节,原理是一样的)。为了保证消息一定能发出。且对方也一定能收到,消息数据本身就须要记录下来,这些信息存放在数据库中(能够是各种数据库)。因为消息具有中间状态(已发送、未发送等),应用系统通过Notify能够实现分布式事物——BASE(基本可用(Basically Available)、软状态 (Soft State)、终于一致(Eventually Consistent))。

    NotifyServer能够水平扩展,NotifyClient也能够水平扩展,数据库也能够水平扩展,从理论上讲,这个消息系统的吞吐量是没有上限的。如今Notify系统每天承载了淘宝10亿次以上的消息通知。

    18.TDDL

    TDDL实现了以下三个基本的特性:

    yy数据訪问路由——将针对数据的读写请求发送到最合适的

    地方。

    yy数据的多向非对称复制——一次写入,多点读取。

    yy数据存储的自由扩展——不再受限于单台机器的容量瓶颈

    与速度瓶颈。平滑迁移。

    下图展示了TDDL所处的位置。

     

    简单的分库分表数据查询策略




    先吃饭去~。明天再看。

    。o(╯□╰)o害羞


    19.ODPS -->http://odps.aliyun.com/.

    ODPS是开发数据仓库的平台工具。
    数据仓库的传统市场是电信和银行,传统解决方式非常昂贵。


    互联网运营团队越来越依赖于大数据分析工具。


    云计算是技术创新也是业务创新。
    对于网络行业,业务数据天然在网上,导入ODPS更easy。
    对于传统行业。前期可能须要VM、RDS和OTS等兄弟产品开路,逐步引导用户使用ODPS。



    20.飞天体系


    21.CDN


  • 相关阅读:
    【2017-06-20】Linux应用开发工程师C/C++面试问题记录之一:Linux多线程程序的同步问题
    April 14 2017 Week 15 Friday
    April 13 2017 Week 15 Thursday
    April 12 2017 Week 15 Wednesday
    【2017-06-17】QtGui基础控件:QSpinBox及QDoubleSpinBox
    April 11 2017 Week 15 Tuesday
    April 10 2017 Week 15 Monday
    April 9 2017 Week 15 Sunday
    April 8 2017 Week 14 Saturday
    April 7 2017 Week 14 Friday
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7204261.html
Copyright © 2011-2022 走看看