这是我参与「第三届青训营 -后端场」笔记创作活动的第5篇笔记
RAID技术
单机系统如何做到高性能/高性价比/高可靠性?-> RAID技术
RAID包含3中形式,性能最好的RAID 0+1,其结合了RAID 0和RAID 1的技术,容错力强,写入带宽好。
非关系型数据库
Elasticsearch,MongoDB,Redis三足鼎立
Elasticsearch面向文档存储,可序列化成json形式,支持嵌套。
MongoDB:面向文档存储,文档可形式化json/bson,4.0后开始支持事务。
redis:最广发最普及,使用c语言实现,单线程+I/O复用,性能很好,数据结构丰富。
分布式数据库
单机数据库向分布式数据库发展的原因:
容量:单机容量有限,受硬件限制->节点存储池,动态扩缩容。
弹性:实现cpu和内存根据需要进行弹性的扩大和缩小。
性价比:相对单机系统更高,可以有效地组织廉价的服务器。
小结
存储系统,包括:块存储、文件存储、对象存储和k/V存储。 其中k/v存储形式最为灵活,存在大量的开源/黑盒产品。
数据库系统,包括关系型数据库(比如MySQL)、非关系型数据库(比如Redis)。
分布式架构,主要的组成部分,包括:数据分布策略、数据复制协议、分布式事务算法。
对象存储TSS
-
抖音短视频的图片存储服务:把短视频生产/消费的链路做得更加细粒度化,不需要存储在本地服务器中。
-
分布式存储 vs 对象存储:均具备海量、易用和便宜的特征,但是对象存储更加海量,对象数量无限制,支持>EB的海量存储。
-
对象存储的适用性与不适用性:对象存储适用于视频、文本、图像、安装包等静态存储的对象,而不适用于关系型数据等结构化、频繁更改的数据。
-
使用:云厂商会提供对象存储,申请bucket,使用restful的api接口。拿视频存储举例,先申请对象存储资源,然后后端掉用指定的API实现CURD操作。 最终的抖音项目中也用了这个方法,还是很方便的,比存储在本地服务器管理起来要更加方便。但是隐私性、数据的安全性也是需要考虑的。