一、背景
Webflux虽然是响应式的,但是没办法,JDBC是基于阻塞IO实现的,所以无法真正的威力发挥不出来。
但是,Webflux一旦整合了R2DBC之后,那么它将不再受限于数据库连接了,真正打通了响应式应用的任督二脉,性能才被释放。
当然,除了Spring推出的R2DBC协议,还有Oracle官方的ADBA,只不过后者进展缓慢。而在Webflux急需响应式数据库驱动协议的支持的背景下,Spring自己动手了。
二、R2DBC介绍
R2DBC全称Reactive Relational Database Connectivity,也就是反应式关系型数据库连接。R2DBC是基于Reactive Streams标准来设计的。
通过使用R2DBC,你可以使用reactive API来操作数据。
2.1 R2DBC的优点
支持响应式IO的,不同于JDBC的阻塞IO,性能确实有提升。
但它不提供ORM框架的缓存,延迟加载 。
2.2 官方介绍文档
https://docs.spring.io/spring-data/r2dbc/docs/current/reference/html/
2.3 协议支持的数据库
目前已经支持该协议的数据库。包括PostgreSQL 、H2、MSSQL ,MariaDB、MySQL等。