Reactive Streams Specification 1.0 发布后,jdbc 规范也会响应式吗?
After Reactive Streams Specification 1.0 released, will jdbc specification go reactive as well?
我正在学习和使用反应流编程与 akka 流,我试图为异步-jdbc-驱动程序或反应-jdbc-驱动程序找到任何库 2 年,并且我发现 slick 3.0 或 rxjava-jdbc-driver 提供异步 jdbc api,但我知道 slick 正在 JDBC [=] 之上构建惊人的 api 26=],这是阻塞的(如果我错了请纠正我),所以我猜从系统的角度来看,它可能不是 100% 从上到下的反应系统。
另一个了不起的事件是去年 'Reactive Streams Specification V1.0' 发布了,所以我的问题是:
- 事件是否会触发JDBC专家组设计异步JDBCAPI支持?
- 然后数据库提供商组织,例如MySQL的提供商Oracle,是否有计划实施相应的驱动程序?
- 如果这是无望的,任何指示或替换或我可以变成的任何东西或 JDBC 层不必是反应性的并且横向扩展 mysql 服务器就足够了吗?
我也不知道有什么计划。许多不受旧 JDBC API 约束的 NoSQL 解决方案开始提供基于反应的 API。我不能说这些是否是全栈反应;您应该通过查看他们的 spec/implementation.
来确认这一点
由于我们通过 RxNetty(Retrofit、OkHttp?)为 TCP/HTTP 提供了完整的堆栈响应式解决方案,并且也有针对 Servlet 4.0 的移动,所以我们可以通过异步组合 JDBC 来源。但是,这需要从头开始进行新的 API 设计。
也许 JDK 9 是 Flow API(本质上是 Reactive-Streams,但在不同的包下)被 JDK 开发人员理解和接受。请注意,虽然普通的 Reactive-Streams API 可能并不完全适合这样的 I/O,并且需要以双向反应流的形式进行更扩展的 API。
也许有 JEP 经验的人可以解决这个问题,我们可以开始迭代这些方法。
在那之前,我们有围绕您提到的 JDBC 的阻塞包装器。
According to Oracle,他们正在为 JDBC.
提供非阻塞 API
如 link 中所述:
This new API is completely nonblocking. It is not intended to be an
extension to, or a replacement for, JDBC but, rather, an entirely
separate API that provides completely nonblocking access to the same
databases as JDBC.
You can now download the new API from OpenJDK and get involved with
the project by reviewing the API and providing feedback on the JDBC
mailing list
我正在学习和使用反应流编程与 akka 流,我试图为异步-jdbc-驱动程序或反应-jdbc-驱动程序找到任何库 2 年,并且我发现 slick 3.0 或 rxjava-jdbc-driver 提供异步 jdbc api,但我知道 slick 正在 JDBC [=] 之上构建惊人的 api 26=],这是阻塞的(如果我错了请纠正我),所以我猜从系统的角度来看,它可能不是 100% 从上到下的反应系统。
另一个了不起的事件是去年 'Reactive Streams Specification V1.0' 发布了,所以我的问题是:
- 事件是否会触发JDBC专家组设计异步JDBCAPI支持?
- 然后数据库提供商组织,例如MySQL的提供商Oracle,是否有计划实施相应的驱动程序?
- 如果这是无望的,任何指示或替换或我可以变成的任何东西或 JDBC 层不必是反应性的并且横向扩展 mysql 服务器就足够了吗?
我也不知道有什么计划。许多不受旧 JDBC API 约束的 NoSQL 解决方案开始提供基于反应的 API。我不能说这些是否是全栈反应;您应该通过查看他们的 spec/implementation.
来确认这一点由于我们通过 RxNetty(Retrofit、OkHttp?)为 TCP/HTTP 提供了完整的堆栈响应式解决方案,并且也有针对 Servlet 4.0 的移动,所以我们可以通过异步组合 JDBC 来源。但是,这需要从头开始进行新的 API 设计。
也许 JDK 9 是 Flow API(本质上是 Reactive-Streams,但在不同的包下)被 JDK 开发人员理解和接受。请注意,虽然普通的 Reactive-Streams API 可能并不完全适合这样的 I/O,并且需要以双向反应流的形式进行更扩展的 API。
也许有 JEP 经验的人可以解决这个问题,我们可以开始迭代这些方法。
在那之前,我们有围绕您提到的 JDBC 的阻塞包装器。
According to Oracle,他们正在为 JDBC.
提供非阻塞 API如 link 中所述:
This new API is completely nonblocking. It is not intended to be an extension to, or a replacement for, JDBC but, rather, an entirely separate API that provides completely nonblocking access to the same databases as JDBC.
You can now download the new API from OpenJDK and get involved with the project by reviewing the API and providing feedback on the JDBC mailing list