Spring Cloud Gateway

johaS2·2025년 2월 8일

Spring Cloud Gateway

  • 공식 문서 : https://spring.io/projects/spring-cloud-gateway
  • Spring Cloud 기반의 API Gateway로, 마이크로서비스 아키텍처(MSA)에서 클라이언트 요청을 여러 마이크로서비스로 라우팅하는 역할
  • 인증, 로깅, 필터링, 부하 분산, 보안 등 다양한 기능을 제공하여 마이크로서비스 간의 통합된 API 게이트웨이 역할

의존성 추가

Gateway 필수
implementation 'org.springframework.cloud:spring-cloud-starter-gateway-mvc'

Gateway 라우팅 설정

  1. 마이크로 서버 2개 준비
  2. application.properties 설정
server.port=8080


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=http://localhost:8081


spring.cloud.gateway.routes[1].id=ms2
spring.cloud.gateway.routes[1].predicates[0].name=Path
spring.cloud.gateway.routes[1].predicates[0].args.pattern=/ms2/**
spring.cloud.gateway.routes[1].uri=http://localhost:8082
  1. application.yml 설정
server:
  port: 8080

spring:
  cloud:
    gateway:
      routes:
        - id: ms1
          uri: http://localhost:8081
          predicates:
            - Path=/ms1/**
        - id: ms2
          uri: http://localhost:8082
          predicates:
            - Path=/ms2/**
  1. Config 클래스 설정
@Configuration
public class CustomRoute {

    @Bean
    public RouteLocator cRoute(RouteLocatorBuilder builder) {
        return builder.routes()
                .route("ms1", r -> r.path("/ms1/**")
                        .uri("http://localhost:8081"))
                .route("ms2", r -> r.path("/ms2/**")
                        .uri("http://localhost:8082"))
                .build();
    }
}
profile
passionate !!

0개의 댓글