码迷,mamicode.com
首页 > Web开发 > 详细

关于并发文件上传的设计

时间:2015-05-08 11:13:09      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

1,系统端对外暴露API层,使用SpringMVC来设计,协议是HTTP。

     当大量文件需要上传时,考虑到互联网传输的这一段速度是比较慢的,例如同时有

            A,B,C,D,E,F,G    这几个Client在传输,如果每个都耗时10S

    那么显而易见,这些client的连接都在保持住10S时间。这个本身没有任何问题,问题出现在下面

2,在1的前提下,如果API层后面,将文件传输到DFS采用的是同步机制,如下链路:

            A(client)------>API---------->DFS     同步

    那么不只是A到API这边要保持10S的连接,从API到DFS也将要同样保持10S的连接。

    那么问题来了,如果DFS还要同时提供大量的读操作,而且几个简单的写操作一直这么占用连接“长达”10S

系统性能损失太大。解决方案如下

3,从客户端到API层无需太多修改,而是修改API到DFS这一段,从同步变为异步,即等待A client发送过来的数据完全弄完以后再一次性写入到DFS里面

    当然这里面也需要有个地方需要选择,A client上来的文件先写到 API的内存?还是硬盘?还是别的存储?

    API到DFS 采用线程池,还是额外起动进程扫描,还是通知进程扫描。。。。

    要考虑的问题不少,但是总体思路已经解决!

关于并发文件上传的设计

标签:

原文地址:http://my.oschina.net/u/2338362/blog/412112

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!