각 기능 설명
Spring Eureka(Service Discovery)
- Netflix OSS 기반의
서비스 디스커버리 서버
- 각 마이크로서비스가
자신의 위치(IP, Port)를 등록하고, 다른 서비스의 위치를 조회하는 용도
- 서비스 간 통신 시
하드코딩된 주소 대신 서비스 이름으로 찾을 수 있게 해줌
헬스체크를 통해 살아있는 인스턴스만 관리
Spring Cloud Gateway(API Gateway)
- 클라이언트 요청의
단일 진입점
- 라우팅, 로드밸런싱, 인증/인가, Rate Limiting, 필터링 등 담당
- 외부에서 들어오는 요청을 적절한
내부 서비스로 전달
함께 쓰는 흐름
Client -> API Gateway -> (Eureka에서 서비스 위치 조회) -> 해당 서비스
순서
1. Gateway가 "lb://user-service/users/1" 요청을 받음
2. Gateway가 Eureka한테 질문, "user-service 인스턴스 목록 줘"
3. Eureka가 응답, "지금 살아있는건 192.168.1.10:8080, 192.168.1.11:8080" 이야
4. Gateway가 그 중 하나 골라서 직접 해당 IP로 요청을 보냄
5. 서비스 -> Gateway -> Client로 직접 감
Gateway 설정 예시
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/users/**
=>
"lb://" 를 붙여주면 동작
-> Eureka 연결 설정이 되어있어야 함
각 기능 존재 유뮤에 따른 구분
Gateway