第87篇
极客时间《从0开始学架构》课程笔记。
标准技术框架
互联网的标准技术架构存储层技术
1、SQL
- SQL即关系数据,NoSQL不是No SQL,而是Not Only SQL,是SQL的补充
- 关系数据不可能被抛弃,所以需要考虑在业务发展后期如何将数据拆分到多个数据库实例,并且保证业务性能需求
- 数据库拆分满足了性能要求,但同样引入了复杂度问题,如何拆?如何组合?
- 流行做法是将这部分功能独立成中间件,即把分库分表做到自动化和平台化,小公司建议使用开源方案,如 MySQL Router、360 Atlas
- 规模扩大到一定程度后一般会在SQL集群构建SQL存储平台,以对业务透明的形式提供资源分配、数据备份、迁移、容灾、读写分离、分库分表等一系列服务
2、NoSQL
- NoSQL数据结构与传统SQL不同,典型NoSQL数据结构:Memcache的key-value结构、Redis的复杂数据结构、MongoDB的文档数据结构
- NoSQL的性能表现比传统SQL更好,可以弥补关系数据库的不足
- NoSQL方案一般自带集群功能,应用起来比SQL分库分表更简单
- NoSQL发展到一定规模后会在集群基础上再实现统一存储平台,统一存储平台主要实现资源动态按需分配、资源自动化管理、故障自动化处理,一般在NoSQL服务器规模达到千台以上才有更大收益
3、小文件存储
- 小文件数据主要是用于展示的数据,如淘宝商品图片、微博内容等,存在3个典型特征,数据小、数量巨大、访问量巨大
- 小文件存储不一定需要业务规模很大,在业务起步阶段就可以做小文件统一存储
- 在开源方案基础上封装小文件存储平台比较常见,如 HBase、Hadoop、Hypertable、FastDFS都可以作为小文件存储底层平台
- 典型的小文件存储:淘宝的TFS、京东的JFS、Facebook的Haystack
4、大文件存储
- 互联网行业的两类大文件:一是业务上的大数据,如Youtube视频文件、电影文件;二是海量的日志数据,如访问日志、操作日志等
- 大文件的特点与小文件相反,数量不多,但每个文件都很大,几百MB、几个GB很常见,可能还有几十GB、几TB的数据
- 大数据起源于Google的3篇大数据论文(Bigtable\Map-Reduce\GFS),开源界大数据处理方案是Yahoo开源的Hadoop系列(HDFS\HBase等)
- 大数据存储和处理一般都是选用开源方案,如Hadoop、HBase、Storm、Hive 等,只有大公司会基于开源方案封装自己的大数据平台,如淘宝的云梯系统、腾讯的TDW系统
网友评论