在公共服务器中为每个租户的应用程序实例使用单独的数据库处理数量适中的客户(租户)相对简单,并且通常是正确的方法。目前我正在研究一个应用程序的架构,其中每个租户都有自己的数据库实例。
但是,问题是该应用程序将拥有大量租户(5,000-10,000)和大量用户,单个租户可能有 2,000 个用户。我们需要支持每周由几个租户扩展系统。
此外,所有租户及其用户都将看到一个通用的登录过程(即每个租户不能拥有自己的 URL)。为此,我需要一个集中的登录过程和一种将数据库动态添加到系统并注册用户的方法。
如何稳健地自动化注册和数据库创建过程?
在系统上创建和注册租户数据库的过程是否可能导致性能或锁定问题。如果您认为这可能是一个问题,有人可以建议减轻它的方法吗?
如何以用户凭据与特定租户数据库相关联的方式管理中央身份验证,但用户可以通过公共页面登录(即全部通过相同的登录 URL,但他们的主应用程序将位于某些特定租户的数据库上) )。租户必须能够维护自己的登录名和权限,但中央登录系统必须了解这些。谁能建议一种方法来做到这一点?
如果我需要通过添加多个数据库服务器来“向外扩展”,谁能建议我在跨服务器管理用户身份(模拟等)时可能需要处理哪些问题以及缓解这些问题的某种方法?
在为每个租户设置数据库的多租户 Web 应用程序中,可以通过相当传统的方法手动备份和恢复数据库。
我正在为一个可能有 5,000-10,000 个租户的应用程序考虑这种类型的架构,并且为这么多租户数据库运行这种类型的过程会很麻烦。
如果我要为大量租户数据库实现这样一个过程:
对于如此大量的不同备份,是否可能会产生过多的性能开销?
如此大量的备份过程如何实现自动化?
如何跟踪如此大量的备份并确保还原操作获得正确的备份和要还原到的数据库?
如何实施控制来监控如此大量数据库的备份状态和完整性?