본문 바로가기

공부기록/Spring

스프링에서 다른 서버와 비동기로 통신하는 방법

기존에 다른 서버와 통신하는 방법은, 만약 rest api였다면

restTemplate을 사용하면 됐습니다.

 

비동기적으로 통신하려면 asyncRestTemplate을 사용하면 됩니다.

 

그러나, 기본적으로 blocking io를 사용하고 있기 때문에, non-blocking io를 사용해야 진정으로 성능이 나올 수 있습니다.

 

그렇게 asyncRestTemplate을 사용하면, listenableFuture가 결과로 나오게 되는데, 그것에 callback으로 어떤 처리를 할지 작성할 수 있습니다.

 

아니면 그것을 completable future로 감싸서 사용을 하면 됩니다. 

 

asyncRestTemplate 뿐만 아니라, completableFuture를 사용하는 경우는 모두 비동기적으로 통신할 수 있습니다. 예를 들면 webFlux도 completableFuture를 사용하기 때문에, 비동기적으로 통신한다는 것으로 볼 수 있습니다. 

'공부기록 > Spring' 카테고리의 다른 글

layered architecture  (0) 2021.12.29
Spring Native  (0) 2021.11.24
스프링 면접 준비  (0) 2021.11.20
토비의 스프링 13장 - 스프링 웹 기술과 스프링 MVC  (0) 2021.11.07
토비 스프링 5장 - 서비스 추상화  (0) 2021.10.27