毕业设计项目介绍:面向海量小文件数据存储平台

【视频展示】

 https://www.acfun.cn/v/ac34161173?shareUid=65252877

 

【介绍】

  面向海量小文件的存储平台,直白就是网盘,但是对于小文件更多地是非结构化的,怎么有组织地存储,必须借助“分布式存储架构”,利用了开箱即用而且小巧易搭建的MinIO系统。

【前端技术】

 

 

  基本没有人问的;

  1、账号(登录)

  2、RESTful 的增删改查接口

  3、文件目录树

 

【后端技术】

(配置)

1、搭建分布式MinIO系统

  本地电脑开启5台虚拟机(其中4台作为存储结点,1台作为服务器)

  基本理论是:4台存储结点,除非破坏是一半以上,不然还可以根据Reed-Solomon代码,将存储结点分为n/2的数据块,n/2奇偶校验块

  MinIO有一定的容灾能力:纠错(字节腐蚀)、数据恢复、数据加密。

2、Nginx

 

 

  其中Server结点配置Nginx,负载均衡,反向代理,缓存机制。

 

(编码)

3、Tire树

  利用字典树算法,加快检索文件速度。

  原理是:文件会通过hash成唯一识别码,而这识别码由字符串组成,字典树只要从根结点遍历整个识别码即可找到对应的存储点位置。无需通过mysql查询。

4、RabbitMQ

 

 

  利用消息队列,将用户上传文件解耦成消息队列,然后利用空闲时间利用多线程实现获取消息头来上传到云端。

6、多线程

  利用go语言的协程,来实现多协程。

3、Redis断点续传

  https://www.cnblogs.com/mrmirror/p/13583715.html

  维护一个replication,分master 和 slave 结点,其中内存中的master 里面有一个backlog,两者都有replication offset 和 run id ,每当网络出现中断时,slave就会问master 的 backlog的offset,如果也没有,则需要resynchronization(重新同步)。

 

(半自动代码 + API)

7、后台管理gin-vue-admin

  https://www.gin-vue-admin.com/

  半自动代码,开箱即用的后台管理网页端。实时监控API,以及

8、阿里云的云存储(数据容灾  + 数据恢复)

 

 

  公有云,主要是为了容灾。也可以通过公有云来提供下载地址,这样更加安全。

9、腾讯云的内容检测

 

 

  利用腾讯云的API,可以支持,图片,文本,视频,音频的内容检测,其中内容检测主要是做评估,如果评估指数比较高,则放到后台带观察,如果发现在平台中涉及违法文件,则会相应进行查封。禁止文件传播。

posted @ 2022-03-26 11:18  Osea  阅读(152)  评论(0编辑  收藏  举报