현재 프로젝트에서 MSA 도메인 간 통신으로 Feign Client 를 사용하고 있다.
HTTP Client Java Library 의 종류는
- HttpURLConnection
- Apache Commons HttpClient
- Apache HttpComponents
- Retrofit
- RestTemplate Synchronous, Blocking 방식
- feign client Synchronous, Blocking 방식
- WebClient Asynchronous, NonBlocking 방식
등등 여러가지가 있는데
스프링으로 개발 시에 RestTemplate을 가장 많이 사용한다고 한다.
하지만 Spring 5.0 이후 RestTemplate는 더 이상 사용되지 않는다고 한다.
spring docs에서는 다른것으로 바꾸라고 권장 하고 있다. 그렇다고 못쓰는건 아니지만
필요에 따라 WebClient 나 OpenFeign 으로 변경하는 곳이 있는 것 같다.
feign client 는
- Netflix에서 RestTemplate보다 효율적인 통신을 위해 만든 것이다.
- HTTP client binder로서 기존 http client 작성을 쉽게 만들어주는 라이브러리이다.
- interface를 작성하고 annotation을 붙여주면 세부적인 내용 없이 사용할 수 있기 때문에 코드 복잡도가 낮아진다.
는 장점이 있다.
참고
https://kdhyo98.tistory.com/33
https://ryumodrn.tistory.com/12
https://oingdaddy.tistory.com/280
https://brunch.co.kr/@springboot/202
'MSA' 카테고리의 다른 글
MSA 프로젝트 중 MVP를 만들었던 이유(feat. 일정 딜레이) (0) | 2022.11.23 |
---|---|
CQRS 구현 - Redis, Kafka 적용 (0) | 2022.11.23 |
MSA, Database Architecture - Querying : API Composition, CQRS 패턴 (0) | 2022.10.31 |
MSA, Software Architecture : Layered Architecture (0) | 2022.10.19 |
MSA 설계, DDD(Domain Driven Design), Event Storming (0) | 2022.10.14 |
댓글