像YouTube或DailyMotion这样的大型视频网站如何处理大量的同步视频上传。例如,为了能够处理来自1000个用户的带宽,需要在Web服务器,硬件等方面做出哪些特殊考虑?谢谢。
答案 0 :(得分:2)
这就是所谓的c10k problem - 你如何同时处理10,000个客户。
Web服务器软件必须编写良好,因此每台服务器可以同时与数百或数千个客户端通信。
storage backend必须精心设计,因此每个服务器对存储网络的写入能力相对较低。存储网络必须是冗余的,因此死驱动器不会破坏用户数据。 (即使失败率为0.01%/年,也意味着每年有数百万人死亡,但每年有数百人死亡。)
Database backends必须准备好向外扩展 - 在插入新记录时没有像“锁定表”那样愚蠢。
routing framework必须准备好根据所涉及的ISP的实际流量成本将流量路由到附近的数据中心。 (没有任何意义可以让整个网络在通往数据中心的过程中通过管道传输视频上传。)
路由框架必须准备好处理一次脱机的整个站点,将失败的上传重定向到新的服务器中心而不会太费劲。
必须构建数据中心,以处理电源故障,空调故障,网络故障,恶意或好奇的公众成员试图进入的攻击,通常是通过拥有两个或更多电源,包括大规模全站点不间断电源电源和发电机;多个独立空调,可以运行整个站点;两个,三个,四个或更多网络资源;物理安全措施和可能的武装警卫。
Hurricane Electric对他们的一些数据中心有很好的照片。它们看起来令人印象深刻,但却是Google,Facebook或亚马逊数据中心需求的一小部分
。