-
Spring Data R2DBC - R2DBC란?TECH/Spring 2022. 6. 16. 09:46
What is R2DBC
R2DBC란 Reactive Relational Database Connectivity의 약어이다. R2DBC는 드라이버 벤더들에 의해 관계형 데이터베이스에 접근하기 위해 구현될 reactive API를 선언한 API 명세 계획이다.
R2DBC가 왜 생겼는지에 대한 답변의 일부는 적은 수의 쓰레드로 동시성을 다루고 적은 하드웨어 리소스로 스케일하는 논블록킹 애플리케이션 스택의 필요성이다. 이 필요성은 표준화된 관계형 데이터 베이스 접근 API의 - 주로 JDBC - 재활용으로는 충족될 수 없었다. JDBC는 fully blocking API이기 때문이다. 블록킹 동작을 ThreadPool로 완화하려는 시도는 사용이 제한적이다.
다른 답변의 일부는 대부분의 애플리케이션은 데이터를 저장하기 위해 관계형 데이터베이스를 사용한다는 것이다. 몇몇 NoSQL 데이터베이스 벤더가 그들의 데이터 베이스를 위해 reactive database client를 제공하지만, NoSQL로 마이그레이션 하는 것은 대부분의 프로젝트에게 선택지가 아니다. 이는 새로운 공통 API가 모든 논블록킹 데이터베이스 드라이버에 대한 기반이 되는 동기가 되었다. 오픈 소스 에코시스템이 다양한 논블록킹 관계형 데이터 베이스 구현을 호스팅하는 반면, 각 클라이언트는 벤더 특정화된 API를 제공하므로 이러한 라이브러리들 위에 제네릭 레이어는 불가능하다.
Spring Data R2DBC - Reference Documentation
The term, “reactive”, refers to programming models that are built around reacting to change, availability, and processability -— network components reacting to I/O events, UI controllers reacting to mouse events, resources being made available, a
docs.spring.io
'TECH > Spring' 카테고리의 다른 글
Spring Data R2DBC + Jasync 사용시 AbstractMethodError가 발생하는 경우 (0) 2022.10.31 Spring Boot 애플리케이션의 Health Endpoint 상태가 Eureka에 영향을 끼칠까? (0) 2022.10.14 Spring Cloud Gateway의 RouteDefinitionRepository (0) 2022.06.07 logback-spring.xml과 application.yml의 로그 설정 중 어떤 것이 우선 순위가 더 높을까 (0) 2022.02.21 Spring Boot war 파일 생성하기 (0) 2021.09.11