【发布时间】:2013-07-02 11:45:09
【问题描述】:
注意:我编辑了这个问题,因为我试图提出更多问题而不是意见。
我们的应用程序是在 Linux 上使用 Java、JBoss 和 MySQL 开发的多租户应用程序。
如果应用程序是多租户的,我们应该为每个客户启动 1 个实例,还是应该为所有客户启动 1 个实例?
当我们已经有一个实例时,我们应该何时以及为什么要启动新实例?
谢谢 最好的问候
【问题讨论】:
注意:我编辑了这个问题,因为我试图提出更多问题而不是意见。
我们的应用程序是在 Linux 上使用 Java、JBoss 和 MySQL 开发的多租户应用程序。
如果应用程序是多租户的,我们应该为每个客户启动 1 个实例,还是应该为所有客户启动 1 个实例?
当我们已经有一个实例时,我们应该何时以及为什么要启动新实例?
谢谢 最好的问候
【问题讨论】:
这不是一个很好的问题,因为这些问题可能有点过于固执己见。但我会给你一些关于你写的东西的想法。
将一位客户限制在一个实例中不会导致故障转移。如果实例失败,应用程序将关闭,直到您可以重新启动或重新启动实例。
您可能应该考虑构建能够承载多个客户(每个客户 2-4 个实例)并具有故障转移和负载平衡功能的集群。 (也可以使用 Multi-AZ RDS 来托管 mysql)
客户特定的配置需要以某种方式脱离 JBoss 并进入您的应用程序,我不知道平台的详细信息,因此无法提供具体信息。
【讨论】:
是否为每个客户启动一个实例完全取决于您要提供的解决方案、要求、负载和您决定使用的多租户策略。没有固定的答案。
如果所有租户的负载都可以由一个实例维持,并且您不担心每个租户的资源使用情况,那么一个实例就足够了。当然,您将计划高可用性。 以下是我为其他用户提供的关于 saas 设置的数据库设计和可扩展性问题的一些答案。希望对你有帮助。
Explanation of Tenant Load Balancer in SaaS maturity model level 4
【讨论】: