这是我一直想知道的事情。我知道水平缩放是为了在混合中加入更多的机器。但我可以想到两种方法来解决这个问题。假设我有20台我想使用的服务器(加上一个数据库)。我可以:
第一条似乎更常见,更容易理解,但第二条似乎被认为是“最佳实践”(因为它主要是n层架构)。如何在这两种模式中作出选择?每种方法的优缺点是什么?
发布于 2009-12-24 18:00:42
这取决于任务,以及您的瓶颈是什么。
几乎无一例外,您至少需要两种服务器: 1)应用程序和2)数据库。如果您分发应用服务器,您仍然需要在它们之间同步数据,使其中一个服务器(或一个单独的服务器)成为您的数据库服务器。
如果您知道数据库不会受到大量流量的影响(例如:您正在运行一个基于实时聊天的站点,并且没有多少数据永久存储或同步),那么选择只使用应用程序服务器就可以了。
但是,对于大多数站点来说,选择2更好,特别是如果您事先不知道哪些服务器将成为瓶颈。如果不允许每种服务器类型进行缩放,那么在意外的增长突增期间,您将不得不重写源代码。然后,您将不得不做出困难的决定,例如“我们应该禁用哪些功能,以便在我们进行缩放时站点仍能正常工作?”
老实说,我不会花太多时间担心可伸缩性。一旦您到达服务器负载变得太高的地步,您将能够负担得起一些源重写。要么通过新发现的资金来源,要么通过网站的直接利润。就是一个很好的例子: Twitter仍然做得很好.
https://stackoverflow.com/questions/1959173
复制相似问题