【问题标题】:Multiple databases and single/multiple codebase: Performance differences多个数据库和单个/多个代码库:性能差异
【发布时间】:2017-10-10 04:36:42
【问题描述】:

我有一个产品(比如 X)托管在三个客户(比如 A、B 和 C)使用的单个 Amazon EC2 实例中。目前,我有 3 个数据库和 3 个代码库通过子域访问,例如:a.productx.com、b.productx.com 和 c.productx.com

从技术上讲,我需要为客户 A、B 和 C 提供不同的数据库,但代码库可以相同(数据库配置部分除外)。拥有一个代码库和三个数据库是否明智?例如:如果客户从 a.productx.com 登录,我将使用 A 数据库;当是b.productx.com时,我会使用B数据库;当它是 c.productx.com 时,我将使用 C 数据库。 代码库对所有人都是通用的。

这会节省我很多时间(轻松升级、维护)和空间,但我不确定是否会影响性能。换句话说,尽管客户会通过不同的子域访问服务器,但它们最终都将由单个代码库提供服务。与拥有多个代码库相比,这会导致性能问题吗?我不是服务器/系统人员,希望得到您的建议。

谢谢!

【问题讨论】:

标签: amazon-ec2 server system scalability devops


【解决方案1】:

关于性能的区别在于,您将拥有一台服务器来处理所有 3 位客户的请求,而不是使用 3 台服务器,每台服务器为一位客户服务。如果您的 3 台服务器上已经有足够的负载来显着利用它们(CPU 或内存),那么仅迁移到一台服务器(相同大小)将对性能产生负面影响。

因此,如果您的服务器负载较轻,您可以在一台相同大小的服务器上处理所有 3 位客户。或者,您可能需要使用更大的服务器(更多 CPU、更多 RAM)。

就您的特定设置而言,仅使用一台服务器并连接到正确的数据库可能会很困难,具体取决于您的用户即将使用的域。您需要考虑您的解决方案如何针对 10、20、100 个客户进行扩展。也许考虑只使用一个数据库,但将其设计为处理多个客户,即,对于每条数据,还要在其旁边存储客户 ID。

【讨论】:

  • 很抱歉我之前不清楚。事实上,我现在也在使用单个服务器。现在 - 单个服务器、3 个应用程序、3 个数据库!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
  • 2013-10-23
  • 1970-01-01
  • 2013-05-30
相关资源
最近更新 更多