inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

마블 다이어그램으로 Flux와 Mono 이해하기

RestTemplate과 Webclient

342

주성호

작성한 질문수 1

0

webflux를 사용할때, webClient를 사용하게 되는데, non-blocking하게 동작해서,,, 란 추상적인 의미 때문에 사용합니다. webclient는 왜 non-blocking 하게 작동하는 걸까요?..

제대로 이해하지 못하고 사용하는것 같은데, 강사님께 설명 부탁드립니다.

 

그에 반해 RestTemplate, openFeign은 사용하지 않는데,
예제코드를 보니 다음과 같이 사용해도 똑같이 non-blocking 하게 작동할까요?

Mono.just(restTemplate.get()).subscribe()

Mono.just(feign.get()).subscribe()

 

java spring project-reactor webflux

답변 1

0

Kevin

안녕하세요?
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

90

2

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

1

213

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