webflux - R2DBC 실습
·
프레임워크/자바 스프링
이 이미지에서는 Spring WebFlux를 사용하는 서버가 클라이언트, API 서버, 그리고 관계형 데이터베이스(RDB)와 어떻게 통신하는지 설명하고 있습니다. 각 통신 과정에서 동기와 비동기 방식이 어떻게 적용되는지를 설명하는 흐름도입니다.1. 클라이언트 → Spring WebFlux (Reactor-Netty)비동기 통신: 클라이언트는 reactor-netty를 사용하여 Spring WebFlux 서버로 요청을 비동기 방식으로 전송합니다.Reactor-Netty: Spring WebFlux는 Reactor와 Netty를 기반으로 동작하며, 클라이언트로부터 들어오는 HTTP 요청을 비동기적으로 처리합니다. 클라이언트가 요청을 보내면, WebFlux 서버는 요청을 처리하는 동안 클라이언트의 연결을 유지..
Spring Webflux 실습 - 2
·
프레임워크/자바 스프링
간단한 spring boot 서버를 만들어 줍니다.`mvc` 서버라고 지칭하겠습니다.package com.example.mvc;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;import java.util.Map;@SpringB..
Spring Webflux 실습 - 2
·
프레임워크/자바 스프링
간단한 spring boot 서버를 만들어 줍니다.`mvc` 서버라고 지칭하겠습니다.package com.example.mvc;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;import java.util.Map;@SpringB..
Spring Webflux 실습 - 1
·
프레임워크/자바 스프링
Spring WebFlux를 이용한 서버 구성Spring Framework를 이용해 실제 서버를 구성하는 과정에서, 각각의 Controller, Service, Repository가 WebFlux 스타일로 어떻게 구현되는지 알아보겠습니다.ControllerSpring WebFlux에서는 컨트롤러를 구현하는 두 가지 방식이 있습니다:Functional EndpointAnnotation Endpoint프로젝트 설정 (application.yml)먼저, Spring Boot 애플리케이션의 설정을 application.yml에 정의합니다. 다음은 애플리케이션의 이름과 로그 레벨을 설정하는 코드입니다:spring: application: name: webflux1logging: level: root..
Webflux - reactor
·
프레임워크/자바 스프링
Reactive Streams와 Spring WebFlux: 비동기 스트림 처리의 핵심 이해비동기 논블로킹 I/O는 현대 웹 애플리케이션에서 매우 중요한 기술입니다. 특히, Reactive Streams는 비동기 데이터를 효율적으로 처리하기 위한 표준을 정의하고, 이를 통해 고성능의 서버 애플리케이션을 구축하는 데 필수적인 역할을 합니다. 이번 포스트에서는 Reactive Streams, Reactor, Spring WebFlux의 개념을 이미지 기반으로 설명하고, 이들이 어떻게 비동기 스트림 처리를 구현하는지 살펴보겠습니다.1. Reactive Stream 계층 구조Reactive Streams는 비동기 스트림 처리에서 non-blocking 방식과 back pressure 메커니즘을 통해 데이터를 효..
접속자 대기열 시스템 #1: 시스템 설계와 Spring WebFlux, Redis
·
프레임워크/자바 스프링
1. 접속자 대기열 시스템 (Spring WebFlux + Redis)1.1 프로젝트 설명접속자 대기열 시스템입니다.이벤트 티켓 예매와 같은 이커머스에서 주로 사용됩니다. 특정 시간대에 이벤트가 발생하게 되면 사용자가 많이 몰리게 되면 트래픽이 급겹하게 몰리게 됩니다.짧은 시간안에 이런 트래픽을 처리 하기 위해서는 특정 기술이 필요합니다. 단순한 Spring MVC가 아닌 Spring Webflux와 Redis를 활용합니다. Spring WebFlux와 Redis가 어떻게 대기열을 관리하는지 보여줍니다.1단계: 대기 페이지 요청/응답사용자가 웹 애플리케이션 서버에 접속을 시도하면, 서버는 사용자에게 대기 페이지를 응답합니다. 이 대기 페이지에서 사용자는 대기열에 등록됩니다.2단계: 대기열 등록사용자가 대..