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功能强大,能从页面渲染到数据访问所有事情,技术开源免费
买过来的系统,进行技术含量的修改是:一个数据库所有的读写操作,拆分成一个注库,两个从库,并且读写分离。
有点:存储容量增加,有了备份,安全性增加,读写分离使得读写效率得以提升(写比读更消耗资源)
第一版有商品发布、管理、搜索、商品详情、出价购买、评论投诉、我的淘宝(03年增加安全交易,支付宝雏形)
不足:
改进:更换oracle,容量大、稳定、安全、性能高。
问题:数据的链接放到sql relay后,代理服务会经常死锁。
解决:人工重启
第二部分
04年 脱胎换骨 java时代
业务分模块,一个模块一个模块地渐进式替换;数据服务逐步采用ioe
框架:
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是一个分布式的消息中间件系统,支持消息的订阅、发送和消费
session框架
tbsession
开放平台
ioe ibm oracle emc存储
公司区别: