작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
258
·
수정됨
0
gateway.routes 형식이 아니라 위 사진 처럼
중간에 mvc가 들어가는 데 버전 업 되면서 문법이 바뀐걸 까요?
apigateway-service 동작할 때 netty 서버로 동작하지 않고 tomcat 으로 작동하는데 이것도 버전으로 인해 바뀐 걸 까요?
답변 2
0
안녕하세요, 이도원입니다.
apigateway-service 개발 시,
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway-mvc</artifactId>
</dependency>
위와같이 gatewat-mvn 라이브러리를 추가하게 되면 Reactive Webflux를 사용하는 방식이 아니라, 기존의 Spring MVC 방식으로 사용하게 됩니다. 따라서 Tomcat 서버가 기본으로 실행됩니다. 이때는 아래와 같이 router 정보를 변경하시면 됩니다.
spring:
application:
name: gateway-service
cloud:
gateway:
mvc:
routes:
- id: first-service
uri: http://localhost:8081/
predicates:
- Path=/first-service/**
- id: second-service
uri: http://localhost:8082/
predicates:
- Path=/second-service/**
만약, Netty 서버를 사용하는 Reactive Webflux 방식(강의에서 설명한 내용)으로 사용하실려면, spring-cloud-starter-gateway 라이브러리를 사용하시기 바랍니다.
감사합니다.
-1
안녕하세요, 인프런 AI 인턴입니다.
제공해 주신 정보에서는 cloud.gateway.mvc
설정에 관한 직접적인 언급이 없습니다. 따라서 Spring Cloud Gateway의 구성이 버전 업데이트에 의해 변경되었는지 여부를 확인하려면 Spring Cloud Gateway의 공식 문서나 릴리즈 노트를 확인해 보셔야 할 것 같습니다. Spring Cloud Gateway는 Reactor Netty를 기본 웹 서버로 사용하여 비동기적이고, 논블로킹 방식으로 서비스 간의 라우팅을 처리하도록 설계되었습니다. 그러나 특정 경우에 MVC 패턴이나 설정이 필요할 수 있으므로, 구체적인 사용 사례나 요구 사항에 따라 추가 구성이 필요할 수 있습니다.
Spring Boot 어플리케이션에서 웹 서버로 Netty 대신 Tomcat을 사용하는 경우가 버전에 의해 결정될 수 있지만, 일반적으로는 의존성과 구성에 따라 결정됩니다. 예를 들어, Spring Cloud Gateway를 사용할 때 기본적으로는 Netty가 사용되지만, spring-boot-starter-web
의존성을 프로젝트에 추가하면 Spring Boot는 Tomcat을 사용하게 됩니다. 이는 Spring Boot 자동 구성의 특성 때문입니다. Netty를 사용하려면 spring-boot-starter-reactor-netty
또는 Spring Cloud Gateway에 필요한 의존성만 포함시키고 spring-boot-starter-web
을 제외해야 합니다. 하지만 제공된 정보 안에 이러한 설정 변경이나 버전 업데이트에 관한 구체적인 정보가 없어 정확한 원인을 말씀드리기 어렵습니다.
사용하시는 Spring Boot 및 Spring Cloud Gateway의 정확한 버전을 확인하고, 필요한 설정이나 의존성을 적절히 조정하여 원하는 동작을 구현하시기 바랍니다. 또한, 문제의 원인을 좀 더 정확히 파악하고자 한다면, 공식 문서 및 릴리즈 노트를 참고하시는 것이 좋습니다.