강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Jason Yoo님의 프로필 이미지
Jason Yoo

작성한 질문수

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

Spring Cloud Bus 테스트

user-service의 embedded tomcat port가 8888로 초기화됩니다.

작성

·

351

0

user-service에서

application.yml에 server.port를 0으로 하고

bootstrap.yml에 spring.cloud.config.uri에 http://127.0.0.1:8888/를 적었는데

자꾸만 embedded tomcat port가 랜덤 포트가 아닌 8888로 초기화되어 포트 중복으로 오류가 발생합니다 ㅜ

이러한 현상은 apigateway-service에서도 마찬가지이며

bootstrap.yml에 따로 server.port: 0을 추가해도 해결되지 않습니다

대신 먼저 user-service와 apigateway-service를 실행시키고 나서

그 다음에 config-server를 실행시키면

3개 다 오류 없이 정상 실행 되며

user-service는 랜덤 포트에, apigateway-service는 8000 포트에 정상적으로 띄워집니다.

다만 이상한 것은, 유레카 대시보드에 apigateway 또는 user-service의 이름이 CONFIG-SERVICE로 덮어 씌워집니다.

user-service와 apigateway-service 둘 다 아래와 같은 bootstrap.yml로 실행하였습니다

spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: config-server
# profiles:
# active: dev

이렇게 편법으로라도 정상 실행을 시키고

postman으로 테스트를 진행하면

비정상 응답을 줍니다

이틀 째 이것만 디버깅하느라 진도를 못 나가고 있네요ㅠ

추가) 그나마 다행인 건, config-service의 spring.config.server를 git으로 할 땐 위와 같은 오류가 발생하는데, native으로 하면 문제 없이 잘 되네요

답변 1

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

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

올려 주신 정보만으로 정확하지는 않지만, user-service, apigateway-service가 모두 config-service의 port로 실행되기 때문에 포트 충돌로 실행이 되지 않는다는 현상은 config-service로부터 server.port에 대한 정보도 가져오는게 아닌가 싶습니다. 먼저, config-service를 기동하지 않은 상태에서 user-service나, apigateway-service를 기동하였을 때, 정상적으로 실행되는지, user-service의 경우에는 random port로 할당되어 실행되는지 확인해 보시기 바랍니다. Config-service의 application.yml, bootstrap.yml 파일을 내용을 공유해 주시면, 정확한 원인을 찾아 볼 수 있을 것 같습니다. 

감사합니다. 

Jason Yoo님의 프로필 이미지
Jason Yoo

작성한 질문수

질문하기