更多课程 选择中心

Java培训
美国上市教育机构

400-111-8989

Java培训

Java 响应式关系数据库

  • 发布:Java培训
  • 来源:Java教程
  • 时间:2020-03-17 13:48

1、前言响应式编程已经在 Java 编程领域出现很长一段时间了。具有高性能,事件驱动,充分利用计算资源,更加优雅的异步编程体验,同时它也提供了背压机制来防止系统过载。很长一段时间 Java 的响应式只能同 MongoDB、Redis 等这些非关系型数据库进行交互。而目前我们大部分的数据还是存放在关系型数据库中,大部分情况下 Java 使用 JDBC 来操作关系型数据库,而 JDBC 是阻塞的、同步的。所以迫切需要一种支持响应式的数据库驱动协议。目前市面上有两种响应式数据库驱动协议,我们来了解一下它们。

2、ADBAADBA[1] 是 Oracle 主导的 Java 异步数据库访问的标准 API 。它的目的性是集成于未来 Java 的标准发行版中,目前发展比较慢,目前只提供OpenJDK的沙盒特性[2]供开发者研究之用。它不打算作为 JDBC 的扩展或替代,而是一个完全独立的 API,该 API 提供对 JDBC 相同数据库的完全无阻塞访问。

3、R2DBCSpring 官方在 Spring 5 发布了响应式 Web 框架 Spring WebFlux 之后急需能够满足异步响应的数据库交互 API 。由于缺乏标准和驱动,Pivotal(Spring 官方) 团队开始研究反应式关系型数据库连接(Reactive Relational Database Connectivity),并提出了R2DBC 规范 API 以评估可行性并讨论数据库厂商是否有兴趣支持反应式的异步非阻塞驱动程序。最开始只有 PostgreSQL 、H2、MSSQL 三家,现在MySQL 也加入了进来。R2DBC 最新版本是0.8.1.RELEASE。除了驱动实现外还提供了 **R2DBC** 连接池 [3] 和 R2DBC 代理[4]。除此之外还支持云原生应用。

3.1 可用的 R2DBC 驱动实现

目前可用的驱动有:

cloud-spanner-r2dbc[5]:用于Google Cloud Spanner的驱动程序

jasync-sql[6]:Java和Kotlin的R2DBC包装器,用Kotlin编写的MySQL和PostgreSQL异步数据库驱动程序。

r2dbc-h2[7]:为H2实现的原生驱动程序,以方便作为测试数据库。

r2dbc-postgres[8]:为PostgreSQL实现的原生驱动程序。

r2dbc-mssql[9]:为Microsoft SQL Server实现的原生驱动程序。

r2dbc-mysql[10]:为MySQL实现的原生驱动程序。

4、总结我们需要明确一点,无论 ADBA 还是 R2DBC 都不是为了取代 JDBC 。只是为了补充在响应式编程下的空白。至于响应式的未来如何,目前还不是很明朗,但是发展很迅速,我还是很看好的。就目前来说 ADBA 具有官方加持的优势,而 R2DBC 具有活跃的社区优势,究竟谁是业界规则的领导者,相信很快就会揭晓。

免责声明:内容来源于网络,若涉及侵权联系尽快删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Java可变长数组
下一篇:Java 14正式发布了!你还在用Java 8吗?
程序员知识:阿里巴巴开源项目分享

程序员知识:阿里巴巴开源项目分享

Java中ThreadLocalRandom的使用

Java中ThreadLocalRandom的使用

Java学习路线流程图

Java学习路线流程图

选择城市和中心
贵州省

福建省

  • 达内厦门软件园中心
广西省

海南省