打算写一个资源服务器,遇到一些问题,求大神帮忙...

oiooooio 2014-07-03 02:54:34
打算写一个资源服务器,遇到一些问题,求大神帮忙...
---
先简单的描述一下需求。
资源服务器(简称rs),准备接收来自客户端的图片资源,每张图片理论大小在1m,客户端发来图片后,存在硬盘,然后通过文件名字和http结合,生成一个资源url发给客户端,然后客户端可以把这个url发给别的客户端...
---
现在存在这样几个问题:
1、如果100个客户端同时发1m的图片,那么服务器可能在1秒或者2秒内或者3秒内等等,在很短的时间里收到100个用户发来的图片资源存到硬盘还是有可能的。如果有1000-5000个客户端同时发呢,那资源服务器会不会出现对于客户端来说无响应的情况?不管是网络,还是硬盘的写入速度,都应该不大可能的处理过来吧?
我不是没有想过存在内存里慢慢写入硬盘,但是这样,零碎文件太多的话,写入的还是很慢,而且我要生成url发给客户端,客户端要及时的发给别处。请问这要怎么处理才好?
求意见,求建议...
---
环境:win7+vs2012
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oiooooio 2014-07-09
  • 打赏
  • 举报
回复
谢谢,对于你们说的,我会考虑和学习...
我不懂电脑 2014-07-07
  • 打赏
  • 举报
回复
象这种情况,需要使用性能水平扩展的方法来解决,也就是做资源服务器集群,或使用idc服务。
宝龙哥 2014-07-07
  • 打赏
  • 举报
回复
同一时间有5000个客户端同时工作,如果不是一大群肉鸡的话,说明你的客户之强大或你的程序的受欢迎程度是空前的,那么升级服务器集群是必须地
宝龙哥 2014-07-07
  • 打赏
  • 举报
回复
有专门的服务器技术来做分散式或云存储,所有的存储都是自动的,你的程序不需要做任何的改动,服务器会把所有的分散和整合的工作都做了 还有一个不好的方法,就是做轮询式的存储,就是一次只保存用户的一部分数据,之后存下一个,到结尾后返回继续存 这样在用户看来就是网络或服务器慢,但看到自己的文件在传 很多FTP服务器其实是用的队列的方式来做,要高性能的话硬件必须跟上,这个是绝对的真理 游戏服务器就是开很多端口,然后把一些如地图等分散在不同的服务器上,用的时候客户端根据信息连接不同的端口
宝龙哥 2014-07-07
  • 打赏
  • 举报
回复
这个一般的是做队列,通知后来的用户等待,如果是都要立即上传要做服务器集群,云存储或分布式存储就是解决这一问题的
dataxdata 2014-07-03
  • 打赏
  • 举报
回复
写服务器必须要事先考虑客户端的数量,不同的客户端数量级,所对应的技术方案也是不一样的,在复杂度、响应速度、成本等不同方面的性能指标的取舍也是不一样的,没有一个能够满足所有要求的方案,必须针对主要的需求 大规模并发访问的时候,响应速度很重要,用户上传的时候,先给用户一个响应,表示收到了,正在上传,然后不断给用户发进度就行了,用户可以理解的,但如果用户等半天都不知道系统在做什么,就会开始不耐烦了 在面临性能瓶颈的时候,有时提升硬件配置也能解决不少问题

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧