目录
HDFS、fastDFS、Mongo gridFS、MinIo
HDFS
概要
HDFS 全称 Hadoop Distributed File System。也就是hadoop分布式文件存储系统,
基本架构主要是由NameNode和DateNode组成,Namenode负责构建命名空间,管理文件的元数据等,而Datanode负责实际存储数据,负责读写工作。HDFS拥有很好的冗余备份机制,默认备份数量是3.
适用场景
1. 大文件存储
2. 读多写少
3. 离线计算
不适用场景
1. 大量小文件 [不适合当一般项目中的文件服务器],原因是文件的元数据是存在NameNode也就是主节点的内存里,文件数据量受限于主节点的内存大小
2. 多方读写,需要任意的文件修改 [HDFS只支持在文件末尾追加数据]
安装教程
链接: Hadoop学习之路(四)Hadoop集群搭建和简单应用.
fastDFS
概要
- FastDFS是用c语言编写的一款开源的分布式文件系统。冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能。
- FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载。
- Trackerserver作用是负载均衡和调度,通过Trackerserver在文件上传时可以根据一些策略找到Storageserver提供文件上传服务。可以将tracker称为追踪服务器或调度服务器.
- Storageserver作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。专用于存储小文件.
- Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。
- 存储流程图如下
安装教程
安装教程: centoS 7 安装fastDFS+Nginx
Mongo GridFs
概要
GridFS是一种在MongoDB中存储大二进制文件的机制。
优点
- 只要安装mongoDB就可以直接使用GridFS,不需要独立的文件存储架构
- 冗余备份机制,保证数据不丢失
- 便于维护,上传的文件会返回文件ID,根据文件ID可以获取文件元数据以及文件数据,可以上传文件名相同的文件
- 桶机制,可以在一个桶存放所有文件
- java调用非常方便.不需要像HDSF或者MinIOO那样维护文件的元数据.使用springboot更加得心应手.
使用场景
- 一般web服务的文件服务器.
- 用户上传的图片或者文档数据
MinIO
概要
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
链接: MinIOn官网地址.
优势
- Minio 有良好的存储机制
- Minio 有很好纠删码的算法与擦除编码算法
- 可向大数据方面过渡
- docker搭建非常方便
适用场景
1.对象存储
2. 文件服务器