我几乎不知道有多台服务器一起工作。 现在我一直在玩从机架空间提供的云服务器。
当人们谈论这些“云”服务器的时候,它们听起来就像是很容易扩展一样。 现在很容易垂直缩放。 但我正在水平谈话。 我知道云服务器可以保存您的服务器的图像,并启动一个完全相同的图像的新服务器。 你如何使用多台服务器? 你如何确保你的应用程序的数据库完整性? 人们听起来很简单,就像你可以在这里添加一对夫妇,并在那里采取一对夫妇。
另外,云服务器可以从256MB扩展到16GB左右。 水平放大而不是垂直放大哪一点更好? 我可以想象有一个瓶颈是磁盘,水平扩展会更好,所以你可以有更多的磁盘。 但是,也许我错了,你应该垂直扩展,然后水平?
你不应该说你的应用程序的性质,但我想这是一个数据库支持的网站。
为了获得最简单的横向扩展能力,您需要开发“无共享”function。 这意味着应用程序的所有内容和状态必须是静态的(图标,JS,HTML,模板等)或应用程序外部(如果pipe理用户文件,通常是数据库,存储)。
到达那里,首先分成两层:后端存储,中间(web应用),前端(理想上只是一个负载平衡器)
如果你得到这个权利,你可以添加尽可能多的Web应用程序服务器,你想击中同一个数据库服务器。 当然,过了一会儿,数据库就会成为瓶颈。 一个精心devise的应用程序应该使用一个快速caching,以避免击中数据库,除非必要。 memcached在这里非常棒,因为您可以在每个webapp服务器上添加一个实例,同时仍然保存一组统一的键/值对。 这为您带来了很多可扩展性。