• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Eureka LoadBalancing

22.12.26 01:32 작성 22.12.26 02:26 수정 조회수 403

0

안녕하세요 질문이 3가지가 있습니다.

  1. 다음과 같이 Eureka에 서버가 2개 등록되어있으면 유레카에서 로드밸런싱을 해주는 건가요?

 

  1. Client -> GateWay로 요청 보냄 -> Eureka에 서버 정보 요청 -> Eureka는 Application name에 여러 개의 IP가 있을 시 로드밸런싱을 해서 GateWay에 서버 정보를 알려줌 -> Gateway가 Eureka에서 얻은 서버 정보로 요청을 보냄

이 과정을 맞을까요?

  1. 위와 같이 8081, 9091이 등록이 되어있지만 Gateway를 호출을 해보면 8081만 나오게 됩니다.
    실행 시킨 방법은 8081은 Intellij에서 Run 버튼을 이용해서 실행 시켰고 9091은 Edit Configuration을 이용해서 -Dserver.port=9091을 이용해서 실행시켰습니다.

  2. 게이트웨이의 application.yml은 다음과 같습니다.

  3. 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

감사합니다.

fbfbf1님의 프로필

fbfbf1

질문자

2022.12.26

안녕하세요, 말씀해주신대로 했는데도 안돼서

Url 주소를 바꿔보니 정상 작동이 됩니다.

 

imagefirstController 입니다,
imagegateway의 application.yml 입니다.

path를 first-service로 했다가

first-service1으로 바꿔보니 라운드 로빈 방식으로 작동하게 됩니다.

 

혹시 왜 그러는 지 알 수 있을까요?