Reactive Redis
·
프레임워크/자바 스프링
이미지에서 보여지는 구조를 바탕으로 분석한 결과, 이 시스템은 Spring WebFlux를 이용해 비동기적으로 API 서버 및 RDBMS와 통신하는 구조를 나타내고 있습니다. 주요 통신 경로를 살펴보면:Reactor-Netty (Async): 클라이언트와 Spring WebFlux 간의 통신은 Reactor-Netty를 통해 비동기적으로 이루어집니다. 이는 WebFlux의 기본 비동기 처리 방식입니다.WebClient (Async): Spring WebFlux는 API 서버와 WebClient를 이용해 비동기 통신을 하고 있습니다. 이 역시 논블로킹 방식으로 처리됩니다.R2DBC (Async): 관계형 데이터베이스(RDB)와의 통신은 R2DBC를 통해 비동기적으로 처리됩니다. 이를 통해 많은 양의 데이터..
Webflux - spring mvc vs webflux
·
프레임워크/자바 스프링
spring mvc와 webflux에 대한 비교를 해보겠습니다.reactive stack은 spring boot2 버전부터 지원되고 있습니다.Reactive StackReactive Stack은 비동기적이고 논블로킹 방식으로 작동하는 스택입니다. Spring WebFlux는 이 스택의 중심에 있으며, Reactive Streams API와 Reactor 라이브러리를 기반으로 구축되었습니다. Reactive Stack은 다음과 같은 특징을 가지고 있습니다:논블로킹 I/O: 여러 요청을 병렬적으로 처리할 수 있어, 대규모 트래픽 처리에 적합합니다.멀티코어 프로세서 활용: 다중 코어를 효과적으로 사용하여 고성능을 달성할 수 있습니다.Netty 및 Servlet 3.1+와 같은 비동기 컨테이너에서 실행되며, 동..
Webflux 소개
·
프레임워크/자바 스프링
Spring WebFlux는 Reactive Stream API를 기반으로 한 비동기, 논블로킹 웹 프레임워크로, 대량의 트래픽과 I/O가 많은 환경에서 기존 서블릿 기반의 Spring MVC보다 더 효율적인 성능을 제공합니다. WebFlux의 핵심 키워드는 Reactive Stream, Non-blocking, Asynchronous입니다.주요 활용 사례마이크로서비스 게이트웨이(Gateway)WebSocket실시간 채팅 서비스하지만 모든 상황에서 Spring WebFlux가 최적은 아닙니다. 특히 CPU Bound 작업(연산이나 계산이 주가 되는 경우)에서는 Spring MVC와 같은 동기 처리 방식이 더 나은 성능을 발휘할 수 있습니다. 반면, I/O Bound 작업(입출력 작업이 많은 경우)에서는 ..