예시코드는 webflux의 이점보단 webclient의 이점 아닌가요?
359
작성한 질문수 35
for문 5번 도는데, resttemplate은 blocking / webclient은 non-blocking 이라 결과가 달라진 것 같아서요
보내는게 non-blocking 이면 mvc도 결과가 동일 했을 것 같아요
답변 1
1
안녕하세요.
좋은 질문 주셔서 감사드립니다.
말씀하신대로 클라이언트 쪽이 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





