首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用spring-data-mongodb实现多租户

如何使用spring-data-mongodb实现多租户
EN

Stack Overflow用户
提问于 2021-09-07 12:56:55
回答 2查看 61关注 0票数 0

我不熟悉使用spring-data-mongodb的mongodb的多租户,我们需要在线程安全的相同代码中使用spring-data-mongodb用于rest API和调度任务(我们的应用程序中有多个调度器)。自动装配mongoTemplate将使应用程序线程安全,因为将从调度器和API访问相同的mongoTemplate。在这种情况下,请给我一个好的实践。

问候

克里斯

EN

回答 2

Stack Overflow用户

发布于 2021-09-07 13:13:15

MongoTemplate本身是线程安全的,即你可以同时从多个线程调用它,它将正常工作,即正确地向MongoDB发送不同的请求。

但这并不能保证一致性:如果调度程序正在运行并在同一任务中执行多个更新,则API调用可能会获得一些已更新的记录和一些尚未更新的其他记录。

顺便说一句:多租户是指将来自多个组织实体的数据放在同一个数据库中。我不确定这与你的问题有什么联系,你的意思是多线程吗?

票数 1
EN

Stack Overflow用户

发布于 2021-09-08 07:55:17

如果使用不同的数据库,则不能使用自动连接的MongoTemplate。对于自动装配,必须有一个实例,但由于数据库连接字符串是MongoTemplate的依赖项,因此也必须有一个数据库。

您可以采用一种方法,不直接自动连接MongoTemplate,而是使用某种工厂模式为当前租户创建正确的MongoTemplate。有关示例,请参阅Making spring-data-mongodb multi-tenant。(这是一个老问题,但它的答案会不时更新)。

或者您可以使用基础架构解决方案,并部署应用程序的单独实例,每个租户一个实例,例如在Kubernetes上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69088630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档