官方文档:https://docs.spring.io/spring-data/r2dbc/docs/1.1.0.RELEASE/reference/html/#r2dbc.datbaseclient.fluent-api
R2DBC是 Reactive Relational Database Connectivity 的首字母缩写词。R2DBC 是一个 API 规范倡议,它声明了一个响应式 API,由驱动程序供应商实现以访问他们的关系数据库。
关于为什么创建 R2DBC 的部分答案是需要一个非阻塞应用程序堆栈来处理具有少量线程的并发并使用较少的硬件资源进行扩展。重用标准化的关系数据库访问 API(即 JDBC)无法满足这种需求,因为 JDBC 是一个完全阻塞的 API。尝试使用 a 来补偿阻塞行为
ThreadPool
的用途有限。
答案的另一部分是大多数应用程序使用关系数据库来存储它们的数据。虽然一些 NoSQL 数据库供应商为他们的数据库提供了反应式数据库客户端,但迁移到 NoSQL 并不是大多数项目的选择。这是将新的通用 API 用作任何非阻塞数据库驱动程序的基础的动机。虽然开源生态系统承载着各种非阻塞关系数据库驱动程序实现,但每个客户端都带有特定于供应商的 API,因此在这些库之上的通用层是不可能的。
反应式术语
术语“反应性”是指围绕对变化、可用性和可处理性做出反应而构建的编程模型—