[Spring Cloud로 개발하는 마이크로서비스 애플리케이션]-Service_Discovery

Sungjin·2021년 6월 5일
1
post-thumbnail

Spring Cloud Netflix Eureka

  • 하나의 서비스는 여러개의 인스턴스로 부하 분산 가능
  • 모든 Micro Service는 Spring Cloud Netflix Eureka에 등록
  • Eureka는 ServiceDiscovery 역할을 함 즉, 외부의 Service 및 client에게 서버 OR 서비스의 위치가 어디에 있는지 알려주는 역할을 함
  • Service 등록 및 검색에 관련된 작업
  • Netflix 자사에서 갖고 있는 Cloud기술을 Spring에게 제공한 것을 칭함
  • EX)
    • Micro Service를 사용하고 싶은 Client는 API Gateway에 자신이 필요한 요청 정보를 입력하게 디면 요청 정보가 Service Discovery에 전달되어서 필요한 Service가 어디 있는지 묻게 됨. -> Service의 위치를 받고 위치에 따라 Service를 호출해 결과를 응답받는 형식

이제부터, 직접 구현 해봅시다!

Application.yml - 환경 설정 정보

Eureka Server
  • 포트 번호는 8761
  • Service의 이름은 discoveryService
  • register-with-eureka (유레카 서버에 등록 하겠냐는 뜻! 즉, 지금 Service는 Eureka Server이니 등록이 필요 없어서 false로 설정)
  • fetch-registy (Client가 검색 가능하도록! 즉, 지금 Service는 Eureka Server이니 검색!이 필요 없어서 false로 설정)
Eureka Client
  • 포트 번호를 0으로 놓는 이유??
    • 하나의 Service를 여러개의 인스턴스로 등록 가능! -> 포트번호를 줌으로서, 인스턴스를 구분
      • Service를 구동 시, 구동할 때마다 포트 번호를 직접 정해주는 것은 굉장히 번거로운 작업!
      • 그렇다면, 구동할 때 마다 포트 번호를 랜덤으로 주기 위해 0으로 설정하자!
  • Service의 이름은 user-service
  • instance-id 를 주는 이유??
    • 포트 번호를 랜덤으로 주기 위해 0으로만 설정 해 놓으면 유레카 서버에서 포트 번호가 0으로만 나와 인스턴스를 구분하지 못합니다. 따라서, 별도로 인스턴스를 명시 해 주는 포트 값을 random.value로 추가 설정 하여 줍니다.
  • register-with-eureka (유레카 서버에 등록 하겠냐는 뜻! Eureka Client이니 등록 필요)
  • fetch-registy (Client가 검색 가능하도록! Eureka Client이니 true로 설정)
  • service-url : 어느 Eureak Server에 등록을 할 것인지 Eureka server의 url을 적어줌

TIP! - Service를 여러개 구동 시키는 방법

  • IntelliJ에서 제공하는 터미널 사용!
    Maven 컴파일러 명령어 직접 사용
  • Cmd 및 Terminal 이용!(src및 target 디렉토리가 있는 곳으로 이동 필요)
    - 직접 빌드하여 target 밑에 jar파일을 생성하여 실행하는 방법
    - 명령어
    - mvn clean : 기존에 build 되어있었던 정보를 지움(target 폴더 지워 짐)
    - mvn compile package!: 빌드하는 과정 빌드가 끝나면 target이라는 폴더가 생성되며 target밑에 jar파일이 만들어짐
    - java -jar ./target/userservice-0.0.1-SNAPSHOT.jar : 서비스 구동

    빌드된 것을 실행!

실행 모습(localhost:Eureka_Server_Port로 접속하면 Eureka서버 현황을 볼 수 있음)

  • 등록된 서비스가 없을 때
  • 서비스 하나만 등록
  • 등록된 서비스가 두개 일 때
  • 결론 : user-service에서 두 개의 인스턴스로 분산된 것을 보여주고 있습니다. 또한, 왼쪽 하단을 보시면 설정한 대로 포트 번호(59020,56375) 또한 랜덤으로 잘 실행된 것을 볼 수 있습니다!

이상으로 포스팅을 마치겠습니다. 감사합니다 :)

이 글은 인프런 이도원님의 'Spring Cloud로 개발하는 마이크로서비스 애플리케이션'을 수강하고 작성합니다.
출처:https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard

profile
WEB STUDY & etc.. HELLO!

0개의 댓글