淘宝技术这十年

     2011年底,淘宝网拥有全国最大的hadoop分布式计算集群之一(2000多节点,cpu:24000,内存:48000gb,disk:24000块),日增50tb,有40tb海量数据存储,分布在全国各地80多节点的cdn网络,支撑流量超过800gbps。搜索引擎能对数十亿商品进行实时搜索,淘宝还自主研发的文件存储系统和缓存系统,以及java中间件和消息中间件系统,组织成一个庞大的电子商务操作系统。

你刚在淘宝买了一件东西



第一部分 个人网站 LAMP

03年4月7号,马云在杭州成立神秘组织,叫来10位员工,签一份协议。

成员:3开发虚竹、三丰、多隆;ued二当家;3运营小宝、阿珂、破天;经理财神。马云+秘书

网站:lamp(linux+apache+mysql+php)

有点:无须编译、发布快,php功能强大,能从页面渲染到数据访问所有事情,技术开源免费

买过来的系统,进行技术含量的修改是:一个数据库所有的读写操作,拆分成一个注库,两个从库,并且读写分离。

有点:存储容量增加,有了备份,安全性增加,读写分离使得读写效率得以提升(写比读更消耗资源)


pear PD为php模块,负责数据访问层


第一版有商品发布、管理、搜索、商品详情、出价购买、评论投诉、我的淘宝(03年增加安全交易,支付宝雏形)

不足:


改进:更换oracle,容量大、稳定、安全、性能高。


好的架构是进化来的,不是设计来的

问题:数据的链接放到sql relay后,代理服务会经常死锁。

解决:人工重启

第二部分

04年 脱胎换骨 java时代

业务分模块,一个模块一个模块地渐进式替换;数据服务逐步采用ioe

框架:


mvc框架是阿里的webX,控制层是ejb,之久曾ibatis

isearch:把数据库里的数据dump(倾倒)成结构化的文本文件,放在硬盘上


七公待着dba做优化和存储工作。oracle如何扩展?分库分表

一台oracle的处理能力有限,连接池数量限制,查询速度与容量成反比


提升系统性能?缓存和cdn


07年前的图片存储架构:


商用存储系统的局限和不足:

1.商用存储系统没有对小文件存储和读取的环境有针对性的优化

2.文件数量大,网络存储设备无法支撑

3.整个系统所链接的服务器越来越多,网络连接数已经达到网络存储设备的极限

4.商用存储扩容成本高

5.存在单点故障


成果:tfs淘宝图片存储系统

对上述系统的需求:


tfs1.0


介绍:

集群由一对name server和多的太data server构成,name server为两台服务器互为双机

1.每个data server运行在一台普通的linux主机上

2.以block文件的形式存放数据文件(64m)

3.block存储多份是保证数据安全

4.利用ext3文件系统存放数据文件

5.磁盘raid5做数据冗余

6.文件名内置元数据信息,用户自己保存tfs文件名与实际文件的对照关系,使得数据量特别小

核心:传统集群系统的元数据只有一份,由管理节点管理,容易成瓶颈。而tfs在图片的保存文件名上暗藏了元数据信息,而元数据结构很简单,仅仅只需一个fileID即可准确定位文件在什么地方

tfs1.3


优化:改善心跳和同步的性能,元数据存储在内存中、清理磁盘空间

1.采用ext4文件系统,并且预分配文件,减少ext3文件系统碎片来带的性能损耗

2.单进程管理单块磁盘方式,摒除raid5机制

3.带有ha机制的中央控制节点,在安全稳定和性能复杂度之间取得平衡

4.缩减元数据大小,将更多的元数据加载如内存,提升访问速度

5.跨机架和idc的负载均衡及冗余安全策略

6.玩全平滑扩容

图片服务器的拓扑结构:


缩略图:实时生成


缓存技术esi edge side includes数据缓冲/缓存服务器,提供将web网页的东西(网页的片段)进行缓冲/缓存的技术及服务

esi中是部分的缓冲网页,使用基于xml的标记语言,制定想要缓冲的网页部分

tbstore:分布式的基于berkeley DB的缓存系统

根据保存的key,对key进行hash算法,取得hash值,再对hash值与总cache服务器数据取模,然后根据取模后的值,找到服务器列表中下表为此值的cache服务器,由java client api封装实现。

特点:数据量超过内容时,就往磁盘写数据了,所以,它是可以做持久化存储的。写入磁盘,性能下降

中心系统:uic user information center。叫tdbm



整个系统架构:


重点:


淘宝新系统:


部署结构


专业名词解释:


中间件hsf思想:



notify是一个分布式的消息中间件系统,支持消息的订阅、发送和消费


tddl


session框架


tbsession


开放平台

ioe ibm oracle emc存储

公司区别:


你可能感兴趣的:(淘宝技术这十年)