几次前,我开始了一个Spring项目,这个项目的目标是提供一个REST,它从数据库中收集数据。
目前,我使用了一个reactive (感谢反应堆项目),它包含在Spring5版本中,并创建了反应性控制器。我需要坚持我的数据库规范化数据与关系,这就是为什么我使用PostgreSQL。
在我编写此行时,没有为JDBC和因此JPA提供任何反应式编程支持。但是,我的控制器只有在它们所使用的其他组件也是非阻塞的情况下才是真正的非阻塞。如果我编写仍然依赖于阻塞存储库的Spring WebFlux控制器,那么我的反应性控制器将被阻塞,等待它们生成数据。
我想成为端到端的非阻塞数据库,所以我想转移到Spring支持的一个NoSQL数据库上: Cassandra或MongoDB。我不认为Cassandra真的适合我的需求,我需要重写我的实体,并以不同的方式思考我的数据库的结构,以便面向查询。
我读到,可以用MongoDB在实体之间保持一些关系,特别是在没有折射器的上一个4.0版本中,完全是我的db模式。但我想知道什么是值得的?
谢谢您的帮助和建议!
发布于 2018-08-15 13:42:26
我认为这取决于您的上下文,迁移到document似乎并不适合您的数据,因为它看起来完全是相关的,除非您确信您可以将数据建模为一堆aggreates,否则在检查模型之间的一致性规则时,可能会出现其他问题,例如事务一致性。作为第一种选择,我将尝试在另一个线程中获取数据,可能会将调用包装在一个可观察到的rxjava中。虽然它仍然是一个阻塞调用,但它不会阻塞主线程,您将能够更好地利用资源。
那是我的2美分。问候
https://stackoverflow.com/questions/51859342
复制相似问题