Spring cloud gateway - API Gateway는 API의 요청자인 Client(웹어플리케이션 또는 모바일앱)와 API의 제공자인 backend service를 연결하는 중계자
Spring cloud 커뮤니티에서 zuul 대신 권고하고 있는 API Gateway가 입니다.
Spring Cloud Sleuth - Logging 하나의 Request에 대해 서버 전체에 걸쳐 동일한 UUID
Spring Cloud Sleuth 사용시 Application 로그에 Trace ID(UUID)가 함께 출력
Trace ID - 하나의 Request에 대해 서버 전체에 걸쳐 동일한 UUID
Eureka - 서비스 클라이언트가 서비스를 호출할때 서비스의 위치 (즉 IP주소와 포트)를 알아낼 수 있는 기능
클라우드 환경이 되면서 서비스가 오토 스케일링등에 의해서 동적으로 생성되거나 컨테이너 기반의 배포로 인해서, 서비스의 IP가 동적으로 변경.
이 때, 서비스 클라이언트가 서비스를 호출할때 서비스의 위치 (즉 IP주소와 포트)를 알아낼 수 있는 기능을 **서비스 디스커버리(Service discovery)**라고 부름
클라이언트 사이드 디스커버리 패턴(Client-Side Discovery Pattern)
- 서비스 인스턴스의 네트워크 위치를 찾고 로드밸런싱하는 역할을 클라이언트가 담당하는 방식
- 서버 사이드 디스커버리 패턴(Server-Side Discovery Pattern)
- 서버 쪽에서 디스커버리 로직을 구현한 방식
Ribbon - Load balancing을 요청 어플리케이션 단에서 수행해주는 Client-side Load balancer
Spring WebClient - 웹으로 API를 호출하기 위해 사용되는 Http Client Non-Blocking방식 모듈
Java에서 가장 많이 사용하는 Http Client는 RestTemplate입니다.
차이점은 통신방법이 RestTemplate은 Blocking방식이고, WebClient는 Non-Blocking방식
Spring커뮤니티에서는 RestTemplate을 이미 Depreciated 시키고 WebClient를 사용할것을 강력히 권고하고 있습니다.
'개발' 카테고리의 다른 글
pm2 다운 node max-memory-restart 메모리 값 설정 (3) | 2023.01.19 |
---|---|
spring cloud stream rabbitmq 처리량을 늘리는 방법 (0) | 2023.01.13 |
쉽게 이해할수 있는 Consistent Hashing (0) | 2023.01.09 |
도메인 주도 설계 - 동작하는 도메인 모델 만들기 (0) | 2021.07.23 |
쿠버네티스 뜨게 된 이유와 컴포넌트 정리 (0) | 2021.07.04 |