多用途节点对于缩放是否是件好事?

我有一个不同层次的networking应用程序:

  • 数据库的持久性
  • 几个networking服务器(杂种)
  • 负载均衡器

现在它们都在同一台主机上运行。 但是,如何添加另一台服务器来处理更高的负载?

在进一步扩展之前,我应该分离angular色(db&web)吗?

PS让我们简化问题并忽略此问题中的高可用性问题。

PPS数据库现在不是瓶颈。 我真的想要添加更多的Web服务器,请帮助

@gotts:扩展小型网站的规范方式看起来像这样:

首先:拆分为2台服务器,一台运行HTTP服务器和Web应用程序代码(Web应用程序),另一台用于数据库。 数据库服务器应该针对数据库工作负载进行优化,即大量RAM,快速磁盘I / O,快速CPU。

然后:从Web应用程序服务器卸载静态文件服务器,将其卸载到其他服务器或内容传送networking。 考虑禁用webapp服务器上的HTTP KeepAlive。

然后:移至至less4个服务器的设置:

  • 前端的一个HTTP负载均衡器,使用基于源IP地址的一致哈希。
  • 在HTTP负载均衡器的后面,有2个webapp服务器。
  • 在webapps后面,有一个数据库服务器。

布拉德·菲茨帕特里克(Brad Fitzpatrick)的这个演讲在第一页显示了典型的进展 如果这一切对你来说都是新鲜事,那么也许你应该考虑雇佣一个在…之前完成这个工作的系统pipe理员。:-)

现在它们都在同一台主机上运行

愚蠢的想法,或? 我的意思是 – 如果只有一个主机开始,LOAD BALANCER在列表中做了什么? 这是对我来说完全没有意义的一个项目。

  • 首先分开angular色。 特别是由于要求差别很大(更大的数据库需要更多的IOPS,这意味着许多光盘)。

  • 然后重新编程,以便多个Web服务器可以轻松共存。

  • 最后根据需要添加负载平衡器,或者使用DNS循环。

为了安全和性能,我倾向于将传入的http处理推送到表示层(1个或更多的服务器)。 静态内容可以在表示层中提供。 而且你的数据库/业务逻辑也不太容易受到攻击。