在Reactive Streams Specification 1.0发布之后,jdbc规范也会被反应吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Reactive Streams Specification 1.0发布之后,jdbc规范也会被反应吗?相关的知识,希望对你有一定的参考价值。

我正在学习并使用带有akka流的反应流编程,我试图找到async-jdbc-driver或reactive-jdbc-driver的任何库2年了,我发现slick 3.0或rxjava-jdbc-driver提供async jdbc api,但是我知道光滑的是在JDBC api之上构建令人惊叹的api,这是阻塞的(如果我错了就纠正我),所以我想从系统的角度来看,它可能不是100%反应系统从上到下。

另一个惊人的事件是去年发布了“Reactive Streams Specification V1.0”,所以我的问题是:

  1. 该事件是否会触发JDBC Expert Group来设计异步JDBC API支持?
  2. 然后数据库提供商组织,例如mysql的提供商Oracle,是否有计划实施相应的驱动程序?
  3. 如果这是绝望的,任何指示或替换或任何我可以变成或JDBC层不必是被动的和横向扩展的mysql服务器是足够好的?
答案

According to Oracle,他们正在为JDBC提供非阻塞API。

如链接中所述:

这个新API完全无阻塞。它不是JDBC的扩展或替代,而是完全独立的API,它提供与JDBC相同的数据库的完全非阻塞访问。

您现在可以从OpenJDK下载新API,并通过查看API并提供有关JDBC邮件列表的反馈来参与项目

另一答案

我也不知道有任何计划。许多不受旧JDBC API约束的NoSQL解决方案开始提供基于响应的API。那些是否是完全堆栈反应我不能说;你应该通过查看他们的规范/实现来确认。

由于我们通过RxNetty(Retrofit,OkHttp?)为TCP / HTTP提供了完整的堆栈响应解决方案,并且还有Servlet 4.0的移动,所以我们可以编写异步JDBC源代码。但是,这需要从头开始的新API设计。

也许一旦JDK开发人员理解并接受了JDK 9和Flow API(基本上是Reactive-Streams,但在不同的包下)。请注意,普通的Reactive-Streams API可能不完全适用于此类I / O,并且需要以双向反应流的形式提供更多扩展的API。

也许有JEP经验的人可以解决问题,我们可以开始迭代这些方法。

在那之前,我们有你提到的JDBC的阻塞包装器。

以上是关于在Reactive Streams Specification 1.0发布之后,jdbc规范也会被反应吗?的主要内容,如果未能解决你的问题,请参考以下文章

JVM平台上的响应式流(Reactive Streams)规范

FunDA- Stream Source:reactive data streams

Reactive Streams介绍

在Spring 5中调试Reactive Streams

What can Reactive Streams offer EE4J?

如何(不)在Java 9+中使用Reactive Streams