扩展具有高带宽需求的应用程序

我读过“ youtube-architecture ”,但还是不明白一点。

假设我有一个更大的内容交付和一个负载平衡器(nginx)通过反向代理指向例如10个后端服务器(java / jetty)。 现在假设每台服务器的容量为1 GBit / s。

当应用程序获得更多的用户时,我有一些select:

  • 减less每个连接的最大下载速度。 所以有一些重量级的用户不会使连接变得更糟。 (有限的可扩展性)
  • redirect到后端服务器,客户端直接下载,带宽倍增。 ('youtube'风格?)
  • 使用DNS负载均衡,这里也是带宽倍增。 问题:我对负载均衡select过程没有太多的控制权

还有其他的select吗?

例如第二个选项没有redirect? 或者这是正常的,客户端只需加载像“youtube.com”这样的应用程序的皮肤,然后从“xy.googlevideo.com”不同的域下载video?

放大与扩大的范围有几个选项。

把你的静态内容放在CDN上。 这些将通过互联网,希望贴近客户。 YouTube绝对可以被认为是一个CDN,但请记住,他们的架构多年来改变了。

扩大自己。 使用DNS或任播或添加层到体系结构。 采用比一个服务器守护程序更复杂的。 另请参阅: 扩展软件负载平衡器的典型方法是什么?

放大。 为负载平衡器获得更多带宽,例如多个10 Gb链路。 检查你的软件是否可以扩展。