• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Eureka 실행하게 되면 상태값이 왜 저는 데스크탑이라고 나오나요?

21.05.08 21:59 작성 조회수 687

2

첫번째가 정상인데

두번째 사진이 제가 한겁니다..

왜 이렇게 나오는건가요?

그리고 게이트 웨이 서버에서

설정파일에 가시면

      routes:
- id: first-service
# uri: http://localhost:8081/
uri: lb://MY-FIRST-SERVICE

이렇게 설정시

에러가 발생되면서 첫번째 서버쪽으로 안가지네요...

java.net.UnknownHostException: failed to resolve 'DESKTOP-KD56ARJ' after 4 queries 
	at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1013) ~[netty-resolver-dns-4.1.63.Final.jar:4.1.63.Final]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	|_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ HTTP GET "/first-service/welcome" [ExceptionHandlingWebHandler]
Stack trace:

ㅇ무엇이 문제일까요? ㅠ,ㅠ

답변 1

답변을 작성해보세요.

2

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

Eureka 대시보드에 보여지는 Instance ID는 사용자가 지정하지 않으면, IP address를 보여주게 됩니다. 질문하신 내용처럼 DESKTOP-KD56ARJ 은 사용하고 계시는 컴퓨터의 Hostname이 보여진 것 같습니다. 우선, instance-id의 설정을 삭제해 보시고, 어떤 값으로 Eureka 대시보드에 출력되는지 확인해 보시기 바랍니다.

다음으로, Hostname 또는 IP address를 변경하기 위해서는 다음의 설정을 사용하실 수 있습니다. 

server.address=1.1.1.1
server.port=8080

#configuration to set the ip of host instead of the default localhost
eureka.instance.prefer-ip-address=true
eureka.instance.ip-address=${server.address}
eureka.instance.instance-id=${server.address}:${server.port}
java.net.UnknownHostException

위와 같은 Exception은 사용하고 계시는 컴퓨터의 Host 정보에 DESKTOP-KD56ARJ이 저장되지 않아서 그렇것 같습니다. 즉, DESKTOP-KD56ARJ 호스트 이름으로 정보를 요청했을 때, 사용하시는 컴퓨터가 응답해야 하는데, 그러한 정보를 시스템의 Host 파일에 설정하지 않았기 때문입니다. 정보 요청은 http://localhost 또는 http://127.0.0.1 또는 http://[컴퓨터의 IP ADDRESS]로 하셔도 실행 됩니다. 

감사합니다.

권윤경님의 프로필

권윤경

2022.02.20

저도 동일 현상이었어서 공유 드립니다.

api-gateway 와 서비스에 아래와 같이 추가하니 호출 성공하였습니다. 


eureka:
instance:
prefer-ip-address: true
instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}