这是我一直想知道。据我所知,横向扩展大约是增加更多的机器混进去。但我能想到的两种方法这一点。假设我有20台服务器我想用(加数据库)。我可以:

  1. 请作为应用程序运行服务器的所有20台服务器。
  2. 请不同的服务器上做一个任务的不同部分。例如,有一组服务器处理请求,然后另一组应用的业务逻辑,然后又使数据库调用。
  3. 数1似乎是更常见的,并更容易理解,但编号2似乎被认为是“最佳实践”(如它主要是一个n层结构)。一个人如何这两种模式之间进行选择?什么是每一种方法的优点和缺点是什么?

有帮助吗?

解决方案

这取决于任务,这将是你的瓶颈。

几乎毫无例外,你将需要至少两种服务器:1)应用2)数据库。如果您分发应用程序服务器,您仍然需要它们之间的数据同步,使这些服务器中的一个(或单独的服务器)是你的数据库服务器。

如果您知道数据库不会与大的流量被击中(例如:你运行的是基于活聊天网站,并没有太大的数据永久存储或同步),然后使无非是应用服务器的选择可能被罚款

选择#2是更好的,但是,对于大多数的网站,特别是如果你不提前知道哪个服务器将成为瓶颈。如果不允许每个服务器类型,规模,那么您会发现有在意外增长苗头重写源代码卡。然后,你就必须做出这样艰难的决定“哪些功能我们应该禁止这样的网站仍然可以工作,而我们的工作缩放?”

老实说,虽然,我不会花太多时间担心可扩展性。一旦你达到一个地步,你的服务器负荷变得太高,你将能够提供一些源重写。无论是通过资金的新发现的资源,或通过直接获利了结的网站。在点的案例:Twitter的仍然是做伟大

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top