favowang level
获赞
689
粉丝
13
关注
20
看过 TA
8
大连理工
2019
Java
IP属地:北京
暂未填写个人简介
私信
关注
2018-08-21 14:08
已编辑
大连理工 Java
求助:如何把一个文件快速下发到100万个服务器?
wushu:来来来,大家一起脑洞啊 接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协议啊。
0 点赞 评论 收藏
分享
2018-04-21 13:32
已编辑
大连理工 Java
0 点赞 评论 收藏
分享
2018-04-17 17:46
大连理工 Java
0 点赞 评论 收藏
分享
2018-04-17 13:36
已编辑
大连理工 Java
今日头条实习包吃吗?  有人知道吗?  很关心头条实习吃饭要钱吗?
字节跳动_客户端研发:一日免费三餐,还有下午茶,伙食很好,要节制,会变胖的。。。
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务