我对扩展服务器的技巧非常困惑
假设你有一台运行在一台计算机上的高stream量服务器,一台12核CPU,一台数据库服务器。
有一段时间可以工作,但是如果并发用户数量变得非常高,那么呢? 如何扩展呢? 只有这么多,你可以抛开一台服务器来处理。
我在互联网上search了一段时间,但无法find一个答案,概述了如何做到这一点。 例如,Facebook如何处理这么多的用户? 如果有人有任何答案或可以指向我的任何资源,我将不胜感激
你是正确的只有这么多的内存,只有这么多的处理器,你可以通过在服务器。 更何况,如果你只有一台服务器运行你的应用程序,你就把所有的鸡蛋放在一个篮子里。 如果你的单一服务器失败了呢?
因此,我们扩大规模,增加运行相同应用程序的多台服务器,以增加可伸缩性和高可用性以及负载均衡。
我们可以扩展应用程序层和数据库层。
另一种可以使用的技术是卸载。 例如,您可以将内容传送networking(CDN)引入到您的devise中。 使用CDN,我们可以将内容caching在全球的边缘节点上。 这样,我们的应用程序的用户就可以在本地访问内容,而不必连接到可能有数十万英里外的一组服务器来访问您的应用程序。 这样做的结果是您需要较less的服务器,因为大多数内容请求将由CDN提供服务,这意味着服务器本身的负载较低。
另一种卸载方式是在应用程序服务器和数据库服务器之间添加caching轮胎。 在内存caching中使用REDIS或MEMCACHED,通常请求的查询可以caching在REDIS / MEMCACHED集群中,而不是从数据库服务器中检索。 这加速了对数据库的访问,并且再次产生了敲门效应,我们将需要越来越less的数据库服务器。
谷歌,Facebook和所有大型互联网应用程序使用技术和更多。
CDN https://en.wikipedia.org/wiki/Content_delivery_network
优雅地缩放http://philip.greenspun.com/seia/scaling
希望这可以帮助,
麦克风。