求助:如何把一个文件快速下发到100万个服务器?

求助:如何把一个文件快速下发到100万个服务器?
全部评论
来来来,大家一起脑洞啊 接2#========================= 作者:TeeKee 链接:https://www.nowcoder.com/discuss/76829?type=0&order=3&pos=19&page=1 来源:牛客网 如果集中式地放在一个服务器或缓存上的话,带宽、连接都会遇到问题。只说idea的话。 树状:        1. 每个服务器既具有文件存储能力也应具有文件分发能力。        2. 每个服务器接收到文件之后向较近的服务器分发,具体类似多叉树,应该挺快的。 索引状:        1. 设置1000个缓存服务器,文件先下发到这些缓存上。(具体多少缓存、分几层缓存和具体业务有关。)        2. 每个缓存服务器接收1000个服务器取文件。 ================================= A.对于树状传递,在100W台服务器这种量级上,可能存在两个问题 1.如果树上的某一个节点坏掉了,那么从这个节点往下的所有服务器全部宕机。 2.如果树中的某条路径,传递时间太长了(网络中,两个节点间的传递速度受很多因素的影响,可能相差成百上千倍),使得传递效率退化。 改进: 100W台服务器相当于有100W个节点的连通图。那么我们可以在图里生成多颗不同的生成树,在进行数据下发时,同时按照多颗不同的树去传递数据。这样就可以避免某个中间节点宕机,影响到后续的节点。同时这种传递方法实际上是一种依据时间的广度优先遍历,可以避免某条路径过长造成的效率低下。 B.最简洁省事的方法,组播!(类似索引式)。都有100W台服务器了,自己搞个组播网络不就好了,标准的TCP/IP协议啊。
点赞 回复 分享
发布于 2018-04-22 14:25
串成一条链吧 第一个发给第二个 第二个发给第三个以此类推 可以同时发的
点赞 回复 分享
发布于 2018-04-22 13:08
如果集中式地放在一个服务器或缓存上的话,带宽、连接都会遇到问题。只说idea的话。 树状:        1. 每个服务器既具有文件存储能力也应具有文件分发能力。        2. 每个服务器接收到文件之后向较近的服务器分发,具体类似多叉树,应该挺快的。 索引状:        1. 设置1000个缓存服务器,文件先下发到这些缓存上。(具体多少缓存、分几层缓存和具体业务有关。)        2. 每个缓存服务器接收1000个服务器取文件。
点赞 回复 分享
发布于 2018-04-22 13:43
想一想迅雷的下载方式就可以了。下载好的主机同样可以作为上传服务器。不断扩散,速度很快
点赞 回复 分享
发布于 2018-04-22 13:48
可以想到cdn,有树型和p2p结构
点赞 回复 分享
发布于 2018-04-22 15:28
组播?
点赞 回复 分享
发布于 2018-04-22 20:47
使用P2P技术可以实现想要的结果,因为P2P的优势就是下载的同时也在上传,也成为整个网络中的节点或者服务器。可以说试下点量BT内核
点赞 回复 分享
发布于 2018-08-21 13:37
将文件分块  采用bt
点赞 回复 分享
发布于 2018-08-21 14:36

相关推荐

02-13 15:16
三江学院 运营
据说名字越长别人越关注你的昵称我觉得我要被关注了:完全看不出你到底干了什么 全是车轱辘话
点赞 评论 收藏
分享
图源网络侵权删
dddooola:这个事情我去年8月就看到有人b站(up:程序员正义)在举报了,可能一直在查,这次是查明后的处分了
点赞 评论 收藏
分享
评论
点赞
16
分享

创作者周榜

更多
牛客网
牛客企业服务