前段时间我开始了一个 Spring WebFlux 项目,这个项目的目标是提供一个 REST API,它从数据库中收集数据。
我目前采用反应式方法,这要归功于 Spring 5 版本中包含的 Reactor 项目并创建了反应式控制器。我需要坚持我的数据库规范化数据与关系,这就是我使用 PostgreSQL 的原因。
在我写这行代码的时候,没有为 JDBC 和 JPA 提供反应式编程支持。但是我的控制器只有在它们使用的其他组件也是非阻塞的情况下才是真正的非阻塞。如果我编写的 Spring WebFlux 控制器仍然依赖于阻塞存储库,那么我的反应式控制器将被阻塞,等待它们生成数据。
我想要端到端的非阻塞,所以我想继续使用 Spring Data 支持的 NoSQL 数据库之一:Cassandra DB 或 MongoDB。我不认为 Cassandra DB 真的适合我的需求,我需要重写我的实体并以不同的方式思考我的数据库结构以面向查询。
我读到可以在我的实体与 MongoDB 之间保持一些关系,尤其是在没有完全折射我的 db 模式的最新 4.0 版本中。但我想知道什么是值得的?
即使我需要保留关系数据,也切换到 MongoDB
保持以阻塞方式获取数据,然后尽快将其转换为响应式类型
忘记 Spring WebFlux 回到 Spring MVC(可能不是)
感谢您的任何帮助和建议!
MM们
相关分类