본문 바로가기
MSA/MSA관련기술

Spring Cloud Gateway (api gateway)

by 문자메일 2022. 7. 4.

※ 프로젝트 실행 환경

아래 환경에서 정상 실행 확인함

JDK : 1.8

Spring : 2.5.13

 

1. Spring Cloud Gateway 의존성 추가

 

 

 

2. application.yml 설정

eureka.client.fetch-registry=true는 유레카 서버로부터 인스턴스들의 정보를 주기적으로 가져올 것인지를 설정하는 속성임.

true로 설정하면 갱신된 정보를 받겠다는 설정.

defaultZone 값은 유레카 서버의 End Point 주소 입력하면 됨.

server:
  port: 8000

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8761/eureka

spring:
  application:
    name: apigateway-service
  cloud:
    gateway:
      routes:
#        - id: user-service
#          uri: lb://USER-SERVICE
#          predicates:
#            - Path=/user-service/**
        - id: user-service
          uri: lb://USER-SERVICE
          predicates:
            - Path=/user-service/login
            - Method=POST
          filters:
            - RemoveRequestHeader=Cookie
            - RewritePath=/user-service/(?<segment>.*), /$\{segment}
        - id: user-service
          uri: lb://USER-SERVICE
          predicates:
            - Path=/user-service/users
            - Method=POST
          filters:
            - RemoveRequestHeader=Cookie
            - RewritePath=/user-service/(?<segment>.*), /$\{segment}

 

랜덤 포트 설정으로 작성된 파일

server:
  port: 0

spring:
  application:
    name: user-service

eureka:
  instance:
    instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka

출처: https://charactermail.tistory.com/388?category=0 [문자메일의 블로그:티스토리]

 

 

댓글