inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

Blocking I/O 방식과 Non-Blocking I/O 방식 이해하기(2): Spring MVC vs Spring WebFlux

예시코드는 webflux의 이점보단 webclient의 이점 아닌가요?

359

목동 개발자

작성한 질문수 35

3

 

for문 5번 도는데, resttemplate은 blocking / webclient은 non-blocking 이라 결과가 달라진 것 같아서요

 

보내는게 non-blocking 이면 mvc도 결과가 동일 했을 것 같아요

java spring project-reactor webflux

답변 1

1

Kevin

안녕하세요.

좋은 질문 주셔서 감사드립니다.

말씀하신대로 클라이언트 쪽이 Non-Blocking이고, 서버 쪽이 MVC(Blocking)일 경우, 동일한 결과가 나올겁니다.(논리적으로 생각해 본 것이고, 사정상 제가 직접 돌려보지는 못했으니 양해 부탁드릴게요.)

단, MVC 쪽에서 들어오는 요청에 thread가 1대 1로 매핑 된다는 전제가 깔려있어야 될겁니다. MVC 쪽에서는 톰캣이 들어오는 요청 당 thread 하나를 매핑 시켜 줄텐데 이 경우에는 요청이 동시 다발적으로 들어올 때 각각 다른 thread가 매핑될테니 말씀하신대로 동일한 결과가 나올텐데요.

 

만약에 톰캣 쪽에 들어오는 요청에 사용되는 thread가 딱 하나만 존재한다면 말씀하신대로의 결과가 나오지 않을겁니다.

 

물론 Fully Non-Blocking 구조에서는 서버 쪽에서 worker thread가 하나만 있어도 Blocking 되지 않구요.(예제에서 System.setProperty("reactor.netty.ioWorkerCount", "1"); 를 통해서 요청을 처리하는 thread 개수를 1로 지정했습니다.)

 

강의에 나오는 예시는 Blocking I/O와 Non-Blocking I/O를 쉽게 설명드리기 위한 단순 예제라고 이해해 주시면 감사드릴게요.

 

다시 한 번 좋은 질문 주셔서 감사드립니다!

subscription signal 에 upstream 으로 이동하는 순서

0

89

2

Webflux의 Non-Blocking 특성에 대해 문의 드립니다.

1

212

3

Downstream Mono, Flux가 subscriber인가요?

0

160

1

source.next와 source.emit의 차이에 대한 질문입니다.

0

214

2

StepVerifier를 이용한 Testing (1) - expectNoEvent 에 관해서

2

233

1

backpressure latest 전략

0

243

2

StepVerifier를 이용한 Testing (1) 의 StepVerifiter 질문

0

231

1

[Scheduler의 종류 강의] Schedulers.newParallel 메서드에 관한 질문

0

209

2

Backpressure Drop 전략에서 다시 버퍼가 채워지는 시점에 대한 질문입니다.

0

167

2

Reactor 3부의 오픈 일정에 관해서 문의드립니다!

0

173

1

inner sequence context 관련 질문

0

139

1

boundedElastic 관련 질문

1

321

1

강의자료 관련 질문드립니다.

0

250

3

newBoundedElastic 에서 queue 에 쌓이는 룰

0

214

2

import com.itvillage.utils.Logger;

0

149

1

Interceptor에서 reactor Context 유지하는 방법

0

281

2

advancedTimeBy와 thenAwait 사용 예시가 궁금합니다

0

203

1

context의 read, write의 실행 순서

0

262

2

DROP 전략과 LATEST 전략의 차이점이 무엇인가요?

3

637

3

백프레셔 전략 관련해서

1

309

1

Backpressure Example 코드 질문드립니다

0

257

2

Backpressure 전략

0

306

2

Flux 와 Mono

0

463

1

Spring WebFlux 를 사용하기 적합한 시스템

0

804

1