inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

[Spring Boot 3.2 + Spring Cloud 2023] Kubernetes 배포 ①

게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요?

356

인프런21

작성한 질문수 8

1

연결된 서비스 중 307 응답을 주는 서비스가 있습니다. 이 때, 이 응답에 포함된 로케이션으로 자동으로 재요청하도록 설정할 수가 있을까요? Zuul 을 사용할 경우, 동일 요청에 대해 정상적으로 리다이렉트되어 최종적으로 200 이 응답되는데, SCG의 Flux 를 사용하니, 리다이렉트가 되지 않습니다.

찾아보니, webClient 에 구성할 수 있다고 하는데요, SCG에서 구성된 빈을 사용하지 않는 것 같기도 합니다.

           WebClient.builder()
                    .clientConnector(new ReactorClientHttpConnector(
                            HttpClient.create().followRedirect(true)
                    ))

게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요?

감사합니다.

spring-boot jpa 아키텍처 spring-cloud kafka msa rabbitmq

답변 2

1

Dowon Lee

안녕하세요, 이도원입니다.

문의하신 내용을 정리하면, api에서 response 할 때 307 code로 반환할 경우, apigateway-service에서 지정된 URI로 이동되는 것으로 이해했습니다. 예제를 위해 apigateway-service와 first-service를 아래와 같이 수정하여 테스트 했습니다. 최종 결과는 /first-service/hello-redirect 라는 endpoint를 호출할 때, /second-service/check로 이동되도록 구현했습니다.

1) 먼저, first-service에 /hello-redirect 라는 API 를 호출하면, 반환 값에 307 response code 와 이동될 주소를 Header값에 저장하여 반환하고 있습니다.

image<first-esrvice controller 클래스 수정>

2) apigateway-service에 RedirectResponseFilter라는 클래스를 추가하고, filter에서 HttppStatus.TEMPORARY_REDIRECT(307)일 경우에는 Header에 저장된 URI로 이동되도록 했습니다.

image<apigateway-service filter 클래스 추가>

 

3) apigateway-service의 콘솔로그를 확인해 보면, 위와 같이 처리 된 내용을 확인하실 수 있습니다.

image<apigateway-service 콘솔로그>

 

4) /first-service/hello-redirect 호출 시 결과값으로는 second-service의 check API가 실행된 것을 확인해 볼 수 있습니다.

image

혹시, 위에 설명 드린 내용과 질문하신 내용이 다르다면 다시 글 남겨주세요.

 

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
해당 질문과 정확히 일치하는 정보는 제공되지 않았습니다. 하지만, 여러분의 질문에 도움이 될 수 있는 관련 정보를 제공해드릴 수 있습니다.

스프링 부트에서는 리액티브 웹 애플리케이션 개발을 간소화하기 위해 Spring Webflux에 대한 자동 구성을 제공합니다. 여기서는 WebClient.builder()를 사용하여 웹 클라이언트를 구성하는 방법에 대해 언급되어 있습니다. followRedirect(true)를 설정함으로써 리다이렉트를 자동으로 따르도록 할 수 있음을 나타냅니다.

즉, SCG(Spring Cloud Gateway)에서 사용되는 WebClient에 동일한 설정을 적용하여 307 Redirect를 자동으로 재요청하도록 구성할 수 있을 것입니다. SCG 구성과 관련해 자세한 구현 방법 또는 추가적인 설정 방법은 Spring Cloud Gateway 공식 문서 또는 관련 자료를 참조해보시는 것을 추천드립니다.

감사합니다, 인프런21님.

kafka 업데이트 강의 듣고 시포요

0

83

1

강의 교안

0

71

1

마이크로서비스간 통신 시, 인증 처리

0

79

1

api gateway 에서 인증 처리

0

64

1

섹션 19 질문드립니다

0

51

1

강의 자료 업데이트

0

81

1

부하분산 강의 섹션

0

56

1

강의자료는 어디에서?

0

69

1

강의 자료는 어디서 다운 받을 수 있나요?

0

109

1

전체 사용자 조회시 오류

0

57

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

108

2

학습 방향

0

94

2

카프카 커넥터 사용 목적 문의

0

85

2

kafka 강의

0

106

2

서비스 디스커버리 종류

0

86

2

강의 자료에 대해서 궁금해요

0

115

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

88

2

Kafka Source Connect 버전 에러

0

83

2

소스커넥터는 사용안한 거 맞죠?

0

81

2

강의자료 업데이트 문의

0

94

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

56

1

강의 업데이트 계획이 궁금합니다.

0

111

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

160

2

어떤 것이 업데이트 된 건가요?

0

162

2