inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Spring Cloud Gateway - Logging Filter 적용 ➁

Gateway `_(언더바)` Internal Server Error

219

bbgiloo98

작성한 질문수 1

0

안녕하세요. 강의 잘 보고 있습니다.
Gateway의 uri를 lb://MY_FIRST_SERVICE 로 수정했을 때
500 Internal Server Error가 났습니다.

image.png


처음에 Spring boot 버전에서 문제인가 싶어서 Spring boot 버전을 3.3.5 -> 3.2.0 으로 수정도 해보고 load-balancer도 추가해보고 했습니다.
결과적으로 lb://MY_FIRST_SERVICE의 _(언더바)를 -하이픈으로 수정하니 정상 작동하는 것을 알았습니다.
그런데 여기서 이유를 GPT에게 물어본 결과

image.png

라는 답변을 받았습니다.
이러한 결과가 사실이 맞는지 궁금합니다.
구글링 해봤을 때 관련한 자료는 없어서 여쭤봅니다

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

답변 2

0

Dowon Lee

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

Eureka에서는 기본적으로 Eureka's default naming convention에 의해 서비스 이름 정규화(기본적으로 서비스 이름을 대문자로 변환) 과정을 거칩니다. 가장 좋은 방법은 말씀하신 내용처럼 underscores를 사용하지 않고, 단순하게 대문자로만 되어 있는 형태의 Naming을 부여하시는게 좋은데, 부득이하게 소문자를 사용해야 한다면, 변환되었을 때도, 혼동이 있지 않는 이름의 사용과 특수 기호 사용에도 주의가 필요할 것 같습니다. 추가로 apigateway에서 Filter를 이용하여 이름 자체를 처리하는 방법이나, Eureka에서 EurekaInstanceConfigBean을 등록하여 사용하는 방법도 가능할 것 같습니다. 그래도 제일 안전하고 편안 방법은 대문자로 이름 작성 혹은, underscores 대신 hypen으로 구분을 하여 이름을 작성하시면 좋을 것 같습니다.

추가 질문 사항 있으시면 다시 글 남겨 주세요.

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. bbgiloo98님, 질문해주신 내용에 대해 답변드리겠습니다.

Spring Cloud와 관련된 마이크로서비스 아키텍처에서 서비스 이름을 정할 때, 언더스코어(“_”) 대신 하이픈(“-”)을 사용하는 것이 좋습니다. 이는 주로 DNS 및 URI 표준에서 허용되는 형식 때문입니다.

Spring Cloud Gateway나 Eureka에서는 서비스의 이름이 URI로 변환되면서 표준 DNS 스타일로 변환됩니다. 이 과정에서 서비스 이름에 언더스코어가 포함될 경우, 변환이 제대로 이루어지지 않아 Gateway가 해당 서비스를 찾지 못하고 Internal Server Error(500)를 반환할 수 있습니다.

따라서 권장되는 방식은 spring.application.name에서 서비스 이름을 정할 때, 알파벳, 숫자, 하이픈(-), 마침표(.) 만을 사용하셔야 합니다. 이러한 이유로, lb://MY-FIRST-SERVICE와 같이 하이픈을 사용한 경우 정상적으로 동작하는 것을 확인하신 것입니다.

이 부분과 관련된 참조 자료는 아래 두 링크에서 더 확인하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

0

85

1

강의 교안

0

75

1

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

0

79

1

api gateway 에서 인증 처리

0

66

1

섹션 19 질문드립니다

0

54

1

강의 자료 업데이트

0

84

1

부하분산 강의 섹션

0

57

1

강의자료는 어디에서?

0

72

1

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

0

110

1

전체 사용자 조회시 오류

0

59

1

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

0

113

2

학습 방향

0

96

2

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

0

86

2

kafka 강의

0

109

2

서비스 디스커버리 종류

0

87

2

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

0

117

2

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

0

90

2

Kafka Source Connect 버전 에러

0

85

2

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

0

81

2

강의자료 업데이트 문의

0

96

2

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

0

57

1

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

0

113

2

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

0

163

2

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

0

164

2