작성
·
502
·
수정됨
0
안녕하세요 질문이 3가지가 있습니다.
다음과 같이 Eureka에 서버가 2개 등록되어있으면 유레카에서 로드밸런싱을 해주는 건가요?
Client -> GateWay로 요청 보냄 -> Eureka에 서버 정보 요청 -> Eureka는 Application name에 여러 개의 IP가 있을 시 로드밸런싱을 해서 GateWay에 서버 정보를 알려줌 -> Gateway가 Eureka에서 얻은 서버 정보로 요청을 보냄
이 과정을 맞을까요?
위와 같이 8081, 9091이 등록이 되어있지만 Gateway를 호출을 해보면 8081만 나오게 됩니다.
실행 시킨 방법은 8081은 Intellij에서 Run 버튼을 이용해서 실행 시켰고 9091은 Edit Configuration을 이용해서 -Dserver.port=9091을 이용해서 실행시켰습니다.
게이트웨이의 application.yml은 다음과 같습니다.
first-service의 application.yml은 다음과 같습니다.
8081은 잘 찍히는데9091은 잘 나오지 않습니다.
application.yml에 설정된 값이 8081로 되어있어서 8081만 나오게 되는걸까요?
답변 1
1
안녕하세요, 이도원입니다.
문의하신 질문에 답변 드립니다.
1) 네 맞습니다.
2) 네 맞게 이해하신 것 같습니다.
3) 8081, 9091 포트를 구동하신 방법은 맞습니다. 저도 같은 환경에서 다시 테스트 시 잘 호출되고 있습니. first-service의 instance_id 부분을 아래와 같이 수정해 보시고 해 보실 수 있을까요? Eureka에서 해당 서비스의 인식이 잘못된 것 같습니다. (아래는 first-service의 application.yml 파일의 내용입니다)
server:
port: 8081
# port: ${random.int(10000,51000)
spring:
application:
name: my-first-service
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8761/eureka
instance:
instance-id: ${spring.cloud.client.ip-address}:${spring.application.instance_id:${random.value}}
prefer-ip-address: true
감사합니다.
안녕하세요, 말씀해주신대로 했는데도 안돼서
Url 주소를 바꿔보니 정상 작동이 됩니다.
firstController 입니다,
gateway의 application.yml 입니다.
path를 first-service로 했다가
first-service1으로 바꿔보니 라운드 로빈 방식으로 작동하게 됩니다.
혹시 왜 그러는 지 알 수 있을까요?