Microservices Architecture / / 2024. 12. 16. 12:33

/actuator/gateway/refresh의 refresh

/actuator/gateway/refreshrefreshSpring Cloud Gateway에서 라우팅 설정 및 환경 설정을 동적으로 갱신하는 기능을 의미합니다.


Spring Cloud Gateway의 refresh란?

Spring Cloud Gateway는 라우팅 설정환경 설정을 애플리케이션 실행 중에 동적으로 갱신할 수 있습니다.

  • 이때 /actuator/gateway/refresh 엔드포인트를 호출하면 Gateway의 라우팅 설정을 새로고침합니다.
  • 보통 Spring Cloud Config Server환경 변수, 설정 파일에 변경된 값을 반영하고자 할 때 사용됩니다.

기본 개념

  1. 라우팅 설정이란?

    • Spring Cloud Gateway는 요청 경로(Route)를 정의하여 특정 서비스를 호출하도록 설정합니다.
    • 예: /api/order/**Order Service로 라우팅
  2. 문제점

    • 애플리케이션이 실행 중일 때 라우팅 설정을 변경하려면 서비스를 재시작해야 합니다.
    • 이것은 운영 환경에서 중단 시간이 발생하는 문제를 일으킵니다.
  3. /actuator/gateway/refresh

    • 이 엔드포인트를 호출하면 실행 중인 애플리케이션을 재시작하지 않고 라우팅 설정을 동적으로 갱신합니다.

사용 예시

1. 라우팅 설정 변경 (application.yml)

예를 들어, application.yml에서 라우팅 설정이 다음과 같다고 가정합니다.

spring:
  cloud:
    gateway:
      routes:
        - id: order-service
          uri: http://localhost:8081
          predicates:
            - Path=/api/order/**

2. 라우팅 변경

application.yml 파일을 변경합니다.

spring:
  cloud:
    gateway:
      routes:
        - id: order-service
          uri: http://localhost:8082   # 변경된 URI
          predicates:
            - Path=/api/order/**

3. /actuator/gateway/refresh 호출

/actuator/gateway/refresh 엔드포인트를 호출합니다.

HTTP 요청 예시:

curl -X POST http://localhost:8080/actuator/gateway/refresh

4. 설정 갱신

  • Spring Cloud Gateway는 새 라우팅 설정을 즉시 반영합니다.
  • 애플리케이션 재시작 없이 새로운 경로로 트래픽을 보낼 수 있습니다.

정리

  • /actuator/gateway/refreshSpring Cloud Gateway의 라우팅 설정과 환경 설정을 동적으로 새로고침하는 기능입니다.
  • 설정 변경 사항을 애플리케이션 재시작 없이 즉시 반영할 수 있습니다.
  • 이를 통해 운영 중인 시스템에서 라우팅 변경을 효율적으로 관리할 수 있습니다.

'Microservices Architecture' 카테고리의 다른 글

글로벌 필터(Global Filter)  (0) 2024.12.16
Correlation ID  (0) 2024.12.16
리액티브(Reactive)와 논리액티브(Non-Reactive)  (0) 2024.12.16
Spring Cloud Gateway  (4) 2024.12.16
서비스 게이트웨이(Service Gateway)  (0) 2024.12.16
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유