我正在尝试构建一个REST应用程序,有一天可能被数百万个客户端使用。牢记这一点,我们希望有很多要求。我想知道是否适合使用Hibernate或spring-flux。我们的数据库模型是高度关系的,因此我们不得不拒绝mongo和其他非关系数据库。我有几个问题:
答案 0 :(得分:2)
- spring-webflux和休眠模式可以一起使用吗?
是的。 但是,当前的休眠状态为“阻塞IO”,因此您可以松开spring-webflux
的非阻塞反应性字符。 Spring Data项目负责人Oliver Gierke最近宣布了反应性Java数据库连接(https://github.com/r2dbc),但目前尚不可用。
- 如果对问题1的回答为“否”,那么spring-flux是否具有像休眠一样的缓存功能?
此问题已在另一个“堆栈溢出”问题中解决:Spring Webflux and @Cacheable - proper way of caching result of Mono / Flux type
- 如果问题1的答案为“否”,那么随着时间的流逝,弹簧通量的无阻塞方法会比持续冬眠更快吗?
这个问题很难在前面回答。通用I / O相关的内容更“昂贵”,并且会消耗您的性能。
答案 1 :(得分:0)
您可以同时使用 R2DBC
和 Hibernate Reative
。
但是如果您要从基于 Hibernate 的项目迁移到 webflux,我建议您使用 Hibernate Reactive
。它与旧的 hibernate 完全相同,您可以使用所有原生的 hibernate 注释,除了您可以在 Document 中找到的一些细微更改。