首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否应该使用MongoDB与实体的关系为非阻塞端到端与我的Spring 5项目?

我是否应该使用MongoDB与实体的关系为非阻塞端到端与我的Spring 5项目?
EN

Stack Overflow用户
提问于 2018-08-15 13:07:18
回答 1查看 89关注 0票数 1

几次前,我开始了一个Spring项目,这个项目的目标是提供一个REST,它从数据库中收集数据。

目前,我使用了一个reactive (感谢反应堆项目),它包含在Spring5版本中,并创建了反应性控制器。我需要坚持我的数据库规范化数据与关系,这就是为什么我使用PostgreSQL。

在我编写此行时,没有为JDBC和因此JPA提供任何反应式编程支持。但是,我的控制器只有在它们所使用的其他组件也是非阻塞的情况下才是真正的非阻塞。如果我编写仍然依赖于阻塞存储库的Spring WebFlux控制器,那么我的反应性控制器将被阻塞,等待它们生成数据。

我想成为端到端的非阻塞数据库,所以我想转移到Spring支持的一个NoSQL数据库上: Cassandra或MongoDB。我不认为Cassandra真的适合我的需求,我需要重写我的实体,并以不同的方式思考我的数据库的结构,以便面向查询。

我读到,可以用MongoDB在实体之间保持一些关系,特别是在没有折射器的上一个4.0版本中,完全是我的db模式。但我想知道什么是值得的?

  • 切换到MongoDB,即使我需要保留关系数据
  • 保持以阻塞方式获取数据,然后尽快将其转换为反应性类型。
  • 忘记Spring,回到Spring (可能不会)

谢谢您的帮助和建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-15 13:42:26

我认为这取决于您的上下文,迁移到document似乎并不适合您的数据,因为它看起来完全是相关的,除非您确信您可以将数据建模为一堆aggreates,否则在检查模型之间的一致性规则时,可能会出现其他问题,例如事务一致性。作为第一种选择,我将尝试在另一个线程中获取数据,可能会将调用包装在一个可观察到的rxjava中。虽然它仍然是一个阻塞调用,但它不会阻塞主线程,您将能够更好地利用资源。

那是我的2美分。问候

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

https://stackoverflow.com/questions/51859342

复制
相关文章

相似问题

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