# Spring Data R2DBC **Repository Path**: 00fly/spring-data-r2dbc ## Basic Information - **Project Name**: Spring Data R2DBC - **Description**: Spring Data R2DBC 数据库响应式处理框架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-09 - **Last Updated**: 2025-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Data R2DBC #### 介绍 对于底层的数据源来说,MongoDB, Redis, 和 Cassandra 可以直接以reactive的方式支持Spring Data。而其他很多关系型数据库比如Postgres, Microsoft SQL Server, MySQL, H2 和 Google Spanner 则可以通过使用R2DBC 来实现对reactive的支持。 包括vert.x,rxjava等等reactive技术,我们实际上在应用层已经有很多优秀的响应式处理框架。 但是有一个问题就是所有的框架都需要获取底层的数据,而基本上关系型数据库的底层读写都还是同步的。 为了解决这个问题,出现了两个标准,一个是oracle提出的 ADBC (Asynchronous Database Access API),另一个就是Pivotal提出的R2DBC (Reactive Relational Database Connectivity)。 #### R2DBC 传统情况Java 使用 JDBC 来操作关系型数据库,而 JDBC 是阻塞的、同步的,即使使用线程池进行改善也是有限的。基于此,Spring官方(Pivotal)提出了R2DBC(Reactive Relational Database Connectivity)。R2DBC是一项API规范计划,它声明了一个反应式API,该方法将由数据库厂商实现以访问其关系数据库。 目前实现了R2DBC的数据库驱动有:H2、MariaDB、Microsoft SQL Server、MySQL 、jasync-sql MySQL、Postgres 。 R2DBC 是 Reactive Relational Database Connectivity 的全称,即响应式关系型数据库连接,该规范允许驱动程序提供与关系型数据库之间的响应式和非阻塞集成。 ![JDBC规范与R2DBC 规范的对应关系](images/r2dbc.png "JDBC规范与R2DBC 规范的对应关系")