向多个服务器发同一文件的问题

ccdd14 2010-01-14 09:37:09
有一台服务器,要向500台服务器发送同一个文件,文件的大小不确定,有可能是从几K到几G

有什么好的设计方案?
...全文
110 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
whg01 2010-01-14
  • 打赏
  • 举报
回复
具体的方案要根据网络拓扑来实现。
redlives 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hairetz 的回复:]
引用 8 楼 ccdd14 的回复:
广播和多播肯定是不适合的,因为它们是用UDP承载,这里可能涉及大数据量的传输,是不可靠的


udp是不一定不可靠的,但是tcp绝对是慢很多,如果是局域网传文件,建议你udp.
[/Quote]
+1
可以用一定的机制来保证可靠性
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ccdd14 的回复:]
广播和多播肯定是不适合的,因为它们是用UDP承载,这里可能涉及大数据量的传输,是不可靠的
[/Quote]

udp是不一定不可靠的,但是tcp绝对是慢很多,如果是局域网传文件,建议你udp.
ccdd14 2010-01-14
  • 打赏
  • 举报
回复
p2p到是可以考虑
ccdd14 2010-01-14
  • 打赏
  • 举报
回复
广播和多播肯定是不适合的,因为它们是用UDP承载,这里可能涉及大数据量的传输,是不可靠的
苍蝇①号 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 whg01 的回复:]
组播、广播、p2p。
[/Quote]
这是减少网络流量的方式了。
“没做过,我想的方案是一个线程读文件,然后给500个发送线程的队列发送数据。” 这种方式对于每个文件大小1G来说,500个就是500G,要是网络不怎么样的话堵塞死了
DontKissBossAss 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jamesf1982 的回复:]
没做过,我想的方案是一个线程读文件,然后给500个发送线程的队列发送数据。
[/Quote]

如果,程序有其他重要任务做,就用个低优先级线程去操作吧,也可以用扔一份文件片段给给多个线程,叫他们去广播。。。。
james_hw 2010-01-14
  • 打赏
  • 举报
回复
没做过,我想的方案是一个线程读文件,然后给500个发送线程的队列发送数据。
  • 打赏
  • 举报
回复
意思就是像学校老师控制学习的那个东西吧。。。。 我觉得应该用个什么模型来完成。。。客户机连接后有个套接字,,,根据这个套接字连回去。。。据说那个I/0完成模型适应这种大量用户的哒,楼主可以参考下!
macrojj 2010-01-14
  • 打赏
  • 举报
回复
rtp

多播。 我做过的。不过我发的是小文件
whg01 2010-01-14
  • 打赏
  • 举报
回复
组播、广播、p2p。
lvp1984 2010-01-14
  • 打赏
  • 举报
回复
网络情况好的话可以用组播,虽然是udp但可靠性还是可以的,不放心的话还可以加上校验重发那些有误的block,但组播是耗费交换机cpu的.还有一点,组播的机器最好在一台交换机下,否则容易造成广播风暴

不组播的话可以用P2P,断点续传和校验,可靠性高

在差点的方法就是一台台传,考虑的因素: 磁盘读写造成的load高(主要是写),传输速率,内存占用,网络带宽
macrojj 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ccdd14 的回复:]
广播和多播肯定是不适合的,因为它们是用UDP承载,这里可能涉及大数据量的传输,是不可靠的
[/Quote]

你没看到 它要向500个接收端发送

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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