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