0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

响应式数据库驱动协议ADBA和R2DBC

汽车玩家 来源:码农小胖哥 作者:码农小胖哥 2020-04-12 19:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. 前言

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

2. ADBA

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

3. R2DBC

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

3.1 可用的 R2DBC 驱动实现

目前可用的驱动有:

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

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

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

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

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

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

4. 总结

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    20

    文章

    2997

    浏览量

    115657
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67730
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库
    的头像 发表于 07-24 11:12 436次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—服务器异常断电导致Oracle<b class='flag-5'>数据库</b>故障的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—MongoDB数据库文件丢失的数据恢复案例

    MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍
    的头像 发表于 07-01 11:13 455次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—MongoDB<b class='flag-5'>数据库</b>文件丢失的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—SQL Server数据库被加密如何恢复数据

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 500次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>被加密如何恢复<b class='flag-5'>数据</b>?

    MySQL数据库是什么

    MySQL数据库是一种 开源的关系型数据库管理系统(RDBMS) ,由瑞典MySQL AB公司开发,后被Oracle公司收购。它通过结构化查询语言(SQL)进行数据存储、管理和操作,广泛应用于Web
    的头像 发表于 05-23 09:18 913次阅读

    分布存储数据恢复—虚拟机上hbase和hive数据库数据恢复案例

    分布存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布
    的头像 发表于 04-17 11:05 511次阅读

    数据库数据恢复——MongoDB数据库文件拷贝后服务无法启动的数据恢复

    MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的
    的头像 发表于 04-09 11:34 651次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复——MongoDB<b class='flag-5'>数据库</b>文件拷贝后服务无法启动的<b class='flag-5'>数据</b>恢复

    数据库数据恢复—SQL Server附加数据库提示“错误 823”的数据恢复案例

    SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份
    的头像 发表于 02-28 11:38 821次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server附加<b class='flag-5'>数据库</b>提示“错误 823”的<b class='flag-5'>数据</b>恢复案例

    适用于SQLite的dbExpress数据库驱动程序

    驱动程序作为独立。由于数据访问层薄而简单,dbExpress 提供高性能数据库连接性,并且更加易于部署。 适用于 SQLite 的 dbExpress
    的头像 发表于 02-09 09:45 763次阅读

    分布云化数据库有哪些类型

    分布云化数据库有哪些类型?分布云化数据库主要类型包括:关系型分布式数据库、非关系型分布式数据库
    的头像 发表于 01-15 09:43 865次阅读

    MySQL数据库的安装

    MySQL数据库的安装 【一】各种数据库的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL 介绍
    的头像 发表于 01-14 11:25 857次阅读
    MySQL<b class='flag-5'>数据库</b>的安装

    数据库是哪种数据库类型?

    数据库是一种部署在虚拟计算环境中的数据库,它融合了云计算的弹性和可扩展性,为用户提供高效、灵活的数据库服务。云数据库主要分为两大类:关系型数据库
    的头像 发表于 01-07 10:22 802次阅读

    数据库加密办法

    企业对于数据的重视程度不言而喻,也衍生出了数据=资产的概念。但是数据泄漏的事件频繁发生,为了保护数据资产,企业有必要对数据库做一些针对性的措
    的头像 发表于 12-24 09:47 1000次阅读

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分
    的头像 发表于 12-16 11:05 1000次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Mysql<b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b>恢复流程

    数据库事件触发的设置和应用

    数据库无论对于生产管理还是很多的实际应用都非常重要。小编这次聊一下数据库事件触发的应用。示例使用了postgresql和Python。
    的头像 发表于 12-13 15:14 1018次阅读

    数据库数据恢复—MYSQL数据库ibdata1文件损坏的数据恢复案例

    mysql数据库故障: mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复
    的头像 发表于 12-09 11:05 1046次阅读