美文网首页
分布式文件上传的思路

分布式文件上传的思路

作者: xialedoucaicai | 来源:发表于2018-10-02 18:31 被阅读0次

1.问题描述

现在好多应用都不止一台服务器,这就给文件上传带来了麻烦。尤其是对大文件的分片上传,每个分片可能到达不同的服务器,最后怎么把众多分片整合起来呢?
下面就说说这个问题的一些解决思路:

2.解决思路

2.1使用独立的服务器做上传

单独找一台服务器做上传,直接绕过对集群的处理。
因为主要是IO操作,所以服务器最好是大容量固态硬盘,CPU和内存要求可以适当降低;如果上传压力不是很大,还可以让该服务器也参与处理业务逻辑,可以将nginx的负载策略配置为权重,为该服务器分配较低权重;独立服务器的上传有现成的第三方组件,比如jQuery File Upload,支持分片/上传进度/暂停/取消/多文件上传/拖动上传等功能

优点:
支持分片
借用第三方组件,处理简单

缺点:
只有一台机器,一旦故障,上传功能就无法使用了

2.2将文件存入第三方

将集群环境"变成"单机环境。
每个服务器收到分片后,都保存到统一的位置上,比如MongoDB。分片之间的关联关系可以借助文件表中的metadata字段来维护,metadata相同的表示同一个文件;分片的顺序可以直接使用文件名来表示,比如将分片命名为 1 2 3...

优点:
支持分片

缺点:
需要额外维护分片之间关联关系
要考虑第三方对文件处理的效率

2.3多服务器+Nginx

让客户端一直向固定的服务器传分片。
第一个分片请求由nginx决定发给哪个服务器处理,服务端收到该请求后,将ip返给客户端,客户端上传后续分片时不再经过nginx,固定使用该ip,保证同一文件的分片能传到同一台服务器。文件与服务器的对应关系,可以借助第三方维护,比如redis。

优点:
支持分片
服务器集群实现负载均衡

缺点:
需要额外维护文件与服务器的对应关系

2.4使用form表单上传

一个请求传完文件。
直接使用form表单上传,不分片,服务端根据收到的流大小与总大小做上传进度的计算,使用websocket向客户端推送上传进度。

优点:
处理简单,不用考虑集群的问题

缺点:
不支持分片/暂停
只能由服务器来反馈上传进度

相关文章

  • 分布式文件上传的思路

    1.问题描述 现在好多应用都不止一台服务器,这就给文件上传带来了麻烦。尤其是对大文件的分片上传,每个分片可能到达不...

  • 关于上传文件和提交表单的结合+复制文件问题

    使用webuploader上传文件,还要提交文件对应的属性。 思路:使用webuploader选择文件,上传文件,...

  • 文件分片上传.md

    文件分片上传 文件分片上传的总体思路是 先将文件通过blob.slice()方法将文件切割成多个分片。然后循环上传...

  • django-文件上传

    文件上传的思路: 文件上传:是否有文件进行判断 如果有:给文件一个上传路径,并利用uuid生成一个新的名字,与上传...

  • django---文件上传

    文件上传的思路: 文件上传:是否有文件进行判断 如果有:给文件一个上传路径,并利用uuid生成一个新的名字,与上传...

  • #Android上传文件思路

    上传文件就是把本地文件或者图片音频等上传到服务器的一个过程上传到服务器 服务器会给你一个响应的地址 这样我们就可...

  • [IOS 多线程 & 网络 - 2.5] – 小文件上传

    转载:[IOS 多线程 & 网络 - 2.5] – 小文件上传 A.文件上传 思路: 发送文件数据给服务器 使用p...

  • 02.fastDFS分布式文件上传下载解决方案

    fastDFS 分布式文件上传解决方案 一、fastDFS介绍 1). 特点 c 语言编写的一款开源的分布式文件系...

  • 使用springMVC实现文件上传

    简单思路 导入文件上传依赖组件 注册文件上传组件 在springmvc配置文件中加入 修改前端表单提交方式以及请求...

  • [ITSTAR]第二课:Hadoop的背景起源一: GFS: G

    分布式文件系统简图: 分布式文件系统详图: 水平复制的好处:客户端只需上传一份数据,分布式文件系统通过水平复制,自...

网友评论

      本文标题:分布式文件上传的思路

      本文链接:https://www.haomeiwen.com/subject/bkavgftx.html