是否可以将SpringWebflux与休眠一起使用?

时间:2018-10-06 18:39:14

标签: spring hibernate jpa spring-webflux

我正在尝试构建一个REST应用程序,有一天可能被数百万个客户端使用。牢记这一点,我们希望有很多要求。我想知道是否适合使用Hibernate或spring-flux。我们的数据库模型是高度关系的,因此我们不得不拒绝mongo和其他非关系数据库。我有几个问题:

  1. spring-webflux和休眠模式可以一起使用吗?
  2. 如果对问题1的回答为“否”,那么spring-flux是否具有像休眠一样的缓存功能?
  3. 如果问题1的答案为“否”,那么随着时间的流逝,弹簧通量的无阻塞方法会比持续冬眠更快吗?
  4. 我可能会错过的Spring-flux / hibernate有什么好处?

2 个答案:

答案 0 :(得分:2)

  
      
  1. spring-webflux和休眠模式可以一起使用吗?
  2.   

是的。 但是,当前的休眠状态为“阻塞IO”,因此您可以松开spring-webflux的非阻塞反应性字符。 Spring Data项目负责人Oliver Gierke最近宣布了反应性Java数据库连接(https://github.com/r2dbc),但目前尚不可用。

  
      
  1. 如果对问题1的回答为“否”,那么spring-flux是否具有像休眠一样的缓存功能?
  2.   

此问题已在另一个“堆栈溢出”问题中解决:Spring Webflux and @Cacheable - proper way of caching result of Mono / Flux type

  
      
  1. 如果问题1的答案为“否”,那么随着时间的流逝,弹簧通量的无阻塞方法会比持续冬眠更快吗?
  2.   

这个问题很难在前面回答。通用I / O相关的内容更“昂贵”,并且会消耗您的性能。

答案 1 :(得分:0)

您可以同时使用 R2DBCHibernate Reative。 但是如果您要从基于 Hibernate 的项目迁移到 webflux,我建议您使用 Hibernate Reactive。它与旧的 hibernate 完全相同,您可以使用所有原生的 hibernate 注释,除了您可以在 Document 中找到的一些细微更改。