728x90
1. MSA + Spring Cloud Eureka

동작 과정
- 서비스 등록
- 마이크로 서비스는 실행시, Eureka Server에 등록
- 등록시 서비스의 이름/IP 주소/포트 번호 정보 제공, Eureka Server의 레지스트리에 저장 - 앱/웹 에서의 요청
- Spring Cloud API Gateway 애플리케이션 수신
- 마이크로 서비스 간 요청 (Feign Client를 이용한 통신)
- 한 마이크로서비스가 다른 마이크로서비스에 요청시 Eureka Server에서 대상 서비스의 네트워크 정보 조회
- Feign Client는 호출할 서비스의 이름(예: 을 기반으로 Eureka에서 해당 서비스의 정보를 조회합니다.
2. 참고 개념 정리
MSA(Micro Service Architecture)
: 독립적으로 배포가능한 각각의 기능을 수행하는 서비스로 구성된 소프트웨어 설계 방식
- 서비스의 end-point 을 API 형태로 외부에 노출하고, 실질적인 세부사항은 외부에 모두 추상화함.
- 즉, 클라이언트는 API를 통해서만 해당 서비스 호출 가능함.
Spring Cloud Eureka
: 서비스 레지스트리, 서비스 디스커버리를 지원하기 위한 라이브러리로 동적 인프라(클라우드 환경)에서 서비스 간 통신 문제를 해결하는데 주로 쓰임.
- 사용하는 이유
: REST API를 통해 다른 서비스를 호출할 때, 호출 대상 서비스 인스턴스의 네트워크 정보(IP 주소 및 포트)를 알아야함. 그러나 MSA 환경에서는 각 서비스가 독립적으로 배포되며, IP 주소나 포트가 동적으로 변경되는 특징이 있음. 따라서, 클라이언트나 API Gateway가 동적으로 변경되는 서비스의 위치를 찾기 위해 서비스 디스커버리(Service Discovery)라는 매커니즘이 필요함.
- 서비스 레지스트리 / 디스커버리
서비스 레지스트리 | 각 서비스의 위치와 상태 정보를 저장하고 관리 중앙 데이터베이스 역할
|
서비스 디스커버리 | 클라이언트나 API Gateway가 호출할 서비스를 찾도록 돕는 역할
|
- Eureka Server / Client
Eureka Server | 모든 마이크로서비스의 위치를 저장하는 중앙 레지스트리 역할 |
Eureka Client | 각 마이크로 서비스는 Eureka Client로 동작하며, Eureka Server에 등록하고 정보를 조회함. |
- Spring Cloud API Gateway
: 클라이언트(Application) 와 마이크로서비스 사이에 위치하여 모든 요청을 중앙에서 관리함.- 주로 요청 라우팅, 로드 밸런싱, 요청/응답 데이터 변환 역할을 함.
Feign Client
: 마이크로서비스 간의 통신을 쉽게 만들어 주는 HTTP 클라이언트
- Eureka와 통합되어, 서비스 이름만으로 호출가능하며 내부적으로 HTTP 요청을 생성함.
+ 참고 자료
신입사원 개발 정복기 #2. KOKODO의 첫 MSA 서비스 도전기
들어가며
techblog.lotteon.com
728x90
'백엔드 공부' 카테고리의 다른 글
[Java Spring] Exception 발생 시 로그 및 HTTP 응답 에러 메시지 안뜨는 문제 해결 (1) | 2025.01.22 |
---|---|
[Java Spring] Mockito & Junit + 코드 예시 (0) | 2025.01.20 |