강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của qpal1zm23
qpal1zm23

câu hỏi đã được viết

Ứng dụng kiến trúc microservice (MSA) phát triển với Spring Cloud

Tích hợp Users Microservice với Spring Cloud Gateway

API Gateway를 통해 라우팅 시 user service로 전달되는 요청 url에 대해 질문 드립니다..!

Viết

·

915

·

Đã chỉnh sửa

0

안녕하세요 선생님 강의 정말 잘 듣고 있습니다..!

혹시 더 좋은 방법이 있을까 싶어 질문 드립니다.

 

spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      routes:
        - id: A
          uri: lb://USER-SERVICE
          predicates:
            -Path=/user-service/**

위와 같이 gateway 설정을 하게 되면,

user service에도 /user-service/ 라는 path가 같이 합해져 요청 url로 전달되어,

Controller의 /user, /health-check, /welcome 같은 매핑을 모두 /user-service/user, /user-service/health-check, /user-service/welcome 으로 변경하라고 말씀 주셨습니다

혹시 이렇게 컨트롤러의 매핑 정보를 변경하지 않고,

api gateway 단에서 필터를 이용해 사용자 요청 url을 조작해서 라우팅 할 수 있는 방법이 있을까요..??

 

architecturespring-bootJPAspring-cloudKafkamsa

Câu trả lời 1

0

cloud:
  gateway:
    routes:
      - id: user-service
        uri: lb://USER-SERVICE
        predicates:
          - Path=/user-service/**
        filters:
          - RewritePath=/user-service/(?<segment>.*), /${segment}

요렇게 하시면 됩니다! (RewritePath 방식)

spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      routes:
        - id: A
          uri: lb://USER-SERVICE
          predicates:
            - Path=/user-service/**
          filters:
            - StripPrefix=1

혹은 이렇게 하셔도 되는데,

차이점은 아래와 같다고 합니다.

  • StripPrefix=1: 단순히 지정된 수만큼 경로의 프리픽스를 제거합니다.

  • RewritePath: 경로를 정규 표현식으로 맞춰서 더 복잡한 수정이 가능하며, 경로의 특정 부분을 대체하는 등의 세밀한 제어가 가능합니다.

Hình ảnh hồ sơ của qpal1zm23
qpal1zm23

câu hỏi đã được viết

Đặt câu hỏi