RestTemplate과 Webclient
342
작성한 질문수 1
webflux를 사용할때, webClient를 사용하게 되는데, non-blocking하게 동작해서,,, 란 추상적인 의미 때문에 사용합니다. webclient는 왜 non-blocking 하게 작동하는 걸까요?..
제대로 이해하지 못하고 사용하는것 같은데, 강사님께 설명 부탁드립니다.
그에 반해 RestTemplate, openFeign은 사용하지 않는데,
예제코드를 보니 다음과 같이 사용해도 똑같이 non-blocking 하게 작동할까요?
Mono.just(restTemplate.get()).subscribe()
Mono.just(feign.get()).subscribe()
답변 1
0
안녕하세요?
Mono의 예제 코드에서 RestTemplate을 이용한 건 외부 API를 호출해서 데이터를 가지고 와서 Downstream 쪽으로 하나의 데이터 즉, 여기서는 response가 될텐데 response 자체가 하나의 데이터라는 것을 설명하기 위한 예시이고, Non-Blocking에 대한 설명을 하기 위함은 아니었습니다.
WebClient는 3부에서 학습하게 될 내용이라 1부에서 다루기 힘든 부분이 있어 RestTemplate을 사용했다라고 보시면 될 것 같구요.
적어주신 예시처럼 Mono.just(restTemplate.getForEntity()) 같은 형태로 호출하면 외부 API의 요청과 응답 프로세스가 끝날 때까지 현재 실행되는 쓰레드가 차단이 됩니다. 즉 Blocking 방식으로 동작을 합니다.
Non-Blocking에 대해서는 3부에서 조금 상세하게 다룰 예정이긴한데, 그 전에 조금 막연한 느낌이 드신다면
Java 7부터 지원하는 NIO나 Netty 같은 내용을 먼저 학습해 보시길 추천드립니다.
NIO나 Netty는 3부에서 일정 부분 다룰 예정입니다.
감사합니다.
subscription signal 에 upstream 으로 이동하는 순서
0
91
2
Webflux의 Non-Blocking 특성에 대해 문의 드립니다.
1
214
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
323
1
강의자료 관련 질문드립니다.
0
250
3
newBoundedElastic 에서 queue 에 쌓이는 룰
0
215
2
import com.itvillage.utils.Logger;
0
149
1
Interceptor에서 reactor Context 유지하는 방법
0
283
2
예시코드는 webflux의 이점보단 webclient의 이점 아닌가요?
3
361
1
advancedTimeBy와 thenAwait 사용 예시가 궁금합니다
0
205
1
context의 read, write의 실행 순서
0
263
2
DROP 전략과 LATEST 전략의 차이점이 무엇인가요?
3
637
3
백프레셔 전략 관련해서
1
310
1
Backpressure Example 코드 질문드립니다
0
259
2
Backpressure 전략
0
308
2
Flux 와 Mono
0
465
1





