【问题标题】:Can I use SpringWebflux with hibernate or not?我可以将 SpringWebflux 与休眠一起使用吗?
【发布时间】:2019-03-11 22:35:50
【问题描述】:

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

  1. spring-webflux 和 hibernate 可以一起使用吗?
  2. 如果问题 1 的答案是否定的,那么 spring-flux 是否具有类似 hibernate 的缓存功能?
  3. 如果问题 1 的答案是否定的,那么随着时间的推移,springflux 的非阻塞方法是否会始终比休眠更快?
  4. spring-flux/hibernate 有哪些我可能忽略的好处?

【问题讨论】:

    标签: spring hibernate jpa spring-webflux


    【解决方案1】:
    1. spring-webflux 和 hibernate 可以一起使用吗?

    当然可以。 但是当前的 Hibernate 是阻塞式 IO,所以你失去了 spring-webflux 的非阻塞式反应特性。 Oliver Gierke(Spring Data 项目负责人)最近宣布了一种反应式 Java 数据库连接 (https://github.com/r2dbc),但目前尚不可用。

    1. 如果问题 1 的答案是否定的,那么 spring-flux 是否具有类似 hibernate 的缓存功能?

    这个问题已经在另一个 Stack Overflow 问题中得到解决:Spring Webflux and @Cacheable - proper way of caching result of Mono / Flux type

    1. 如果问题 1 的答案是否定的,那么随着时间的推移,springflux 的非阻塞方法是否会始终比休眠更快?

    这个问题前面很难回答。一般 I/O 相关的东西更“昂贵”,会消耗你的性能。

    【讨论】:

    • 如果我的应用程序是使用 Spring mvc 和 hibernate 构建的,现在我从 spring mvc 切换到 spring webflux,它会严重影响我的应用程序吗?对于现有代码,我不希望它是被动的。我只是希望一些新的 REST 端点具有反应性。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2023-03-25
      相关资源
      最近更新 更多