-
WebFlux자바 및 spring boot 2022. 4. 8. 11:43
https://heeyeah.github.io/spring/2020-02-29-web-flux/
[Spring] WebFlux란?
WebFlux? Spring Framwork5에서 새롭게 추가된 모듈이다. web-flux는 client, server에서 reactive 스타일의 어플리케이션 개발을 도와주는 모듈이라고 한다. 스프링 공식문서에 있는, Spring WebFlux에 대한 소개와
heeyeah.github.io
WebFlux는 reactive-stack web framework이며 non-blocking에 Reactive stream을 지원한다. webmvc나 webflux 둘다 사용 가능하다.
WebFlux가 생긴 이유는,
(1) 적은 양의 스레드와 최소한의 하드웨어 자원으로 동시성을 핸들링하기 위해 만들어졌다. 서블릿 3.1이 논블로킹을 지원하지만, 일부분이다. 이는 새로운 공통 API가 생긴 이유가 됐으며, netty와 같은 잘 만들어진 async, non-blocking 서버를 사용한다.
(2) 함수형 프로그래밍 때문이다. Java5에서 Rest controllers나 unit test가 만들어지고, Java8에서는 함수형 API를 위한 Lambda 표현식이 추가됐다. 이는 논블로킹 어플리케이션 API의 토대가 됐다.
WebFlux는 아래와 같은 용도로 사용하는 것을 추천 한다고 합니다. (by 토비)
- 비동기 - 논블록킹 리액티브 개발에 사용
- 효율적으로 동작하는 고성능 웹어플리케이션 개발
- 서비스간 호출이 많은 마이크로서비스 아키텍처에 적합
WebFlux 선행 지식 (2) - Spring의 비동기 처리
[@Async] [@EnableAsync] [TaskExecutor] [ThreadPoolTaskExecutor] [AutoConfiguration]
velog.io
https://kkwonsy.tistory.com/31
WebFlux & Non-blocking
출처: https://tech.peoplefund.co.kr/2017/08/02/non-blocking-asynchronous-concurrency.html // 개념정리 https://tv.kakao.com/channel/3150758/cliplink/391418995 // 토비 강연 영상 https://ztkmkoo.gith..
kkwonsy.tistory.com
https://alwayspr.tistory.com/44
Spring WebFlux는 어떻게 적은 리소스로 많은 트래픽을 감당할까?
위 그림은 DZone 게시글 중 하나인 Spring WebFlux를 이용한 Boot2와 Spring MVC를 이용한 Boot1을 비교한 그래프이다. 해당 그래프에서는 두 가지 특징을 볼 수 있다. 첫 번째로는 유저가 적을 때에는 성능
alwayspr.tistory.com
'자바 및 spring boot' 카테고리의 다른 글
JPA와 MyBatis의 차이 (ORM과 SQL Mapper) (0) 2022.04.20 IoC(제어의 역전)와 DI(의존성 주입) (0) 2022.04.20 Spring Batch Reader 성능 분석 및 측정 part 1 (0) 2022.02.02 Spring Data JPA와 QueryDSL 이해 (0) 2022.02.02 spring batch itemWriter 성능비교 (0) 2022.02.02