기존에 다른 서버와 통신하는 방법은, 만약 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 |