ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Java 响应式关系数据库连接了解一下

2021-05-04 10:51:15  阅读:219  来源: 互联网

标签:Java 驱动程序 R2DBC 数据库 响应 关系数据库 r2dbc


1. 前言

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

2. ADBA

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

3. R2DBC

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

3.1 可用的 R2DBC 驱动实现

目前可用的驱动有:

  • cloud-spanner-r2dbc[5]:用于Google Cloud Spanner的驱动程序
  • jasync-sql[6]JavaKotlinR2DBC包装器,用Kotlin编写的MySQLPostgreSQL异步数据库驱动程序。
  • r2dbc-h2[7]:为H2实现的原生驱动程序,以方便作为测试数据库。
  • r2dbc-postgres[8]:为PostgreSQL实现的原生驱动程序。
  • r2dbc-mssql[9]:为Microsoft SQL Server实现的原生驱动程序。
  • r2dbc-mysql[10]:为MySQL实现的原生驱动程序。

4. 总结

我们需要明确一点,无论 ADBA 还是R2DBC 都不是为了取代 JDBC 。只是为了补充在响应式编程下的空白。至于响应式的未来如何,目前还不是很明朗,但是发展很迅速,我还是很看好的。就目前来说 ADBA 具有官方加持的优势,而R2DBC 具有活跃的社区优势,究竟谁是业界规则的领导者,相信很快就会揭晓。后续我也会实验性的来尝试使用一下 R2DBC 并分享其中的一些经验,多多关注


标签:Java,驱动程序,R2DBC,数据库,响应,关系数据库,r2dbc
来源: https://blog.51cto.com/u_15127607/2752335

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有