Spring Cloud GateWay에서의 Route

seni·2024년 8월 23일

MSA?

목록 보기
2/2
  • Route는 들어오는 HTTP 요청을 처리하는 방식과 해당 요청을 전달할 대상(URI)을 정의.
    • Route 구성
      • 여러 Predicate(경로, 헤더, 파라미터 등과 같은 조건)
      • Filter(요청과 응답을 수정하는 로직)
spring:
  cloud:
    gateway:
      routes:
        - id: path_route
          uri: https://example.org
          predicates:
            - Path=/red/{segment},/blue/{segment}
  • 위 예시 설정에서는 Path와 같은 Predicate를 사용하여 특정 경로를 기반으로 요청을 처리하고 있다. 이 경우 /red/{segment},/blue/{segment} 경로에 해당하는 요청이 들어오면, 이 요청은 설정된 url로 전달된다.
  • id
    • 각 route를 구분하는 식별자
  • url
    • 해당 route가 일치하는 요청을 전달할 대상 url
  • predicates
    • 요청을 이 route로 라우팅할지 여부를 결정하는 조건
    • 위 예시는 요청 경로가 /red/ 또는 /blue/로 시작할 때만 해당 route가 적용됨.

이 route는 spring cloud gateway가 들어오는 요청의 경로를 기반으로 해당 요청을 특정 대상 url로 전달하도록 설정하는 방법.
이를 통해 요청을 처리할 때 경로에 따라 적절한 서비스나 서버로 라우팅할 수 있다.


application.yml

spring:
  application:
    name: folder-api
  cloud:
    gateway:
      routes:
        - id: path_route
          uri: https://example.org
          predicates:
          - Path=/red/{segment},/blue/{segment}

server:
  port: 7071
  • 하고자 하는 프로젝트의 이름
spring:
  application:
    name: folder-api
  cloud:
    gateway:
  • gateway 기능들 중에 지금 설정하려고 하는 건 route
    • route를 여러개를 가질수 있게 하기 위해서
- id: path_route
          uri: https://example.org
          predicates:
          - Path=/red/{segment},/blue/{segment}
  • 이 id 부분이 각 프로젝트마다 한 개씩 만들어 주면 됨.

  • app1, app2 프로젝트를 2개 만들어 둔 상태. -> 그래서 id를 2개 선언해줘야함
    • 사진과 같이 id, url 설정해 줌.
    • 조건문은 Path=/api1/**
      - path에서 api1 아래에 오는 여러가지 api1으로 시작하는 주소는 app1 프로젝트로 갈 수 있도록 주소를 정의.

      app1, app2 정의

gateway application.yml에서 이렇게 routes의 id를 정의해주면 -> 구분자가 해당하는 주소가 그 해당하는 애플리케이션쪽으로 연결할 수 있도록 처리해줌
각 프로젝트에서 Controller부분에 주소를 그에 맞게 시작하면 ex)app1, app2 매핑되서 실행해볼 수 있음.

profile
개발일지

0개의 댓글