반응형
웹 애플리케이션을 개발하면서 REST API를 이용해 다른 서비스를 호출할 때는, 다른 서비스에서는 호출하려는 인스턴스가 있는 곳의 네트워크 정보를 알아야 합니다.
→ 클라이언트나 API GateWay는 호출할 서비스를 찾는 메커니즘이 필요하고, 이것을 Service Discovery라고 합니다.
Spirng Cloud Netflix Eureka가 Service Discovery 역할을 합니다.
Spring Eureka Discovery Service
Spring Eureka Discovery Service는 마이크로서비스 아키텍처(MSA)에서 핵심적인 역학을 합니다.
마이크로서비스들의 위치를 찾아주는 지도와 같은 역할을 합니다.
- MSA에서 마이크로서비스들의 위치를 동적으로 찾아오는 역할을 합니다.
- 클라이언트 애플리케이션 (마이크로 서비스)는 Eureka Client를 통해 Eureka Server에 등록된 서비스의 위치를 확인할 수 있습니다.
- 이후 클라이언트는 검색된 서비스 인스턴스에 대한 요청을 보내고 통신을 수행할 수 있습니다.
Eureka Server & Discovery Server 기능
- 서비스 등록 관리 : 마이크로 서비스들은 Eureka Server에 자신의 인스턴스를 등록합니다.
- Self-Registration Pattern : 각 마이크로 서비스는 자신의 서비스를 중앙의 Registry에 등록하고, Eureka Server는 요청할 때마다 알맞은 Endpoint로 매칭해 줍니다.
Service Discovery
Key에 어떤 서비스인지, Value에는 해당 서비스가 어디에 위치하고 있는지 적혀있습니다.
서버의 등록과 검색을 해주는 서비스로, 외부에서 다른 서비스들이 MicroService를 검색하기 위해서 사용합니다.
작동원리
- 각각의 서비스들(Instance)은 Service Discovery에 서비스와 위치 정보를 등록합니다.
- 클라이언트는 Load Balancer 혹은 API Gateway를 통해 요청을 보냅니다.
- Load Balancer 혹은 API Gateway는 Service Discovery를 통해 맞는 서비스를 찾고 그에 대한 정보를 Load Balancer 혹은 API Gateway에 다시 넘겨줍니다.
- Load Balancer 혹은 API Gateway는 받은 정보를 바탕으로 해당 서비스에 요청을 보냅니다.
반응형
'Spring Framework > Spring' 카테고리의 다른 글
[Spring] 스프링 reactive-stream, 비동기 통신 이해하기 (0) | 2024.06.23 |
---|---|
[Spring Cloud] Spring Config Server를 이용해 설정 파일 관리하기 (0) | 2024.04.01 |
[Spring] Spring CORS 설정 & 이슈 해결 및 웹 애플리케이션 통신 이해하기 (0) | 2024.02.24 |
[SPRING] Spring 객체지향 설계 solid 원칙 이해하기 - Spring Container, IoC, DI (1) | 2024.02.07 |
[Spring] 스프링 파일, 이미지 업로드 / 인스타 이미지 업로드 및 해시태그 파싱하기 - MultipartFile, File (0) | 2023.12.21 |