我正在评估将我们当前的本地Java Web应用程序迁移到SAAS平台的最佳方法。应用程序多租户看起来很简单,但对于数据库来说就不那么简单了。在这一点上,我们可能都知道每租户数据库的优点:隔离、性能、降低的备份/恢复复杂性以及更低的改造复杂性。当然,按租户排的方法也有其好处,减少基础设施成本是一个主要的好处。
将这两种方法结合起来是闻所未闻的吗?这样,每个租户的数据库就可以更快地投放市场,同时支持多租户数据库的开发更改也在逐步进行。一旦这两种方法都投入运营,具有特别繁重的工作负载或安全约束的客户可以拥有自己的独立数据库,但默认情况下将使用共享的通用数据库(出于成本/效率的原因)。有没有人有在现实世界中使用/看到这种方法组合的经验?
无论请求是通过租户ID路由到数据源,还是租户ID是SQL查询的参数,主要区别都应该包含在持久层/数据库中,这在一定程度上限制了组合这两种方法的复杂性。
发布于 2021-02-16 21:34:23
当我们横向扩展租户时,例如将租户数据从共享数据库移动到隔离数据库的数据,这是很复杂的。
由于实体表、映射表的标识和这些步骤的排序,此过程的自动化需要努力和测试,才能成功处理迁移。在此过程中,还需要考虑用于ORM或ADO.NET等数据库的策略。
与具有逐行tenantid相比,如果我们可以在同一数据库中为每个租户使用一个模式,那么执行这种迁移将会更容易。
我们最初确实尝试了这一点,但由于有框架数据和应用程序/业务数据,在较短的时间范围内解决自动发生的迁移并不难,但是,如果有正确的时间和计划,这是可以实现的。
https://stackoverflow.com/questions/66139371
复制相似问题