Gateway Eureka 로드밸런싱

johaS2·2025년 2월 9일

게이트웨이와 Eureka 서버 연동

  • Eureka 서버는 각각의 비즈니스 로직 처리를 담당하는 스프링 부트 어플리케이션 목록들을 가지고 있다.

  • MSA를 구성하는 요소는 자동으로 오토 스케일링되기 때문에 새로 생긴 서버의 IP를 게이트웨이가 알지 못한다. 따라서 Eureka 서버가 해당 목록들을 관리하며 Gateway에게 전달한다.

Spring Cloud Gateway와 Eureka 로드밸런싱

  • 로드밸런싱(Load Balancing)은 트래픽을 여러 서버로 분배하여 과부하를 방지하는 기술

  • Spring Cloud Gateway는 API 게이트웨이로, 클라이언트 요청을 여러 마이크로서비스로 라우팅합니다. Eureka와 결합하면, Gateway는 Eureka에서 서비스 인스턴스를 동적으로 조회하고 로드밸런싱을 통해 요청을 적절한 인스턴스로 전달

  • 로드밸런싱 기본 흐름

  1. 서비스 등록: 각 마이크로서비스(ms1, ms2 등)가 Eureka 서버에 등록
  2. Spring Cloud Gateway는 요청을 라우팅할 때 Eureka에서 서비스 인스턴스를 조회
  3. 로드밸런싱: 로드밸런싱: 여러 인스턴스가 있을 경우, Round-Robin 방식 등으로 로드밸런싱하여 적절한 인스턴스에 요청을 전달

Spring Cloud Gateway Eureka 클라이언트 설정

  • 의존성 추가
    implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
  • application.properties 설정
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://아이디:비밀번호@아이피:8761/eureka

게이트웨이 라우팅 유레카 로드 밸런싱

spring.cloud.gateway.routes[0].id=ms1
spring.cloud.gateway.routes[0].predicates[0].name=Path
spring.cloud.gateway.routes[0].predicates[0].args.pattern=/ms1/**
spring.cloud.gateway.routes[0].uri=lb://MS1
profile
passionate !!

0개의 댓글