Spring Cloud로 개발하는 MSA/Service Discovery

User Service - 등록

webmaster 2022. 1. 29. 13:16
728x90

여러개의 MicroService를 실행하려고 하면 Port중복 오류가 발생한다

  • yml파일에 Port를 변경하게 된다면, 정상 실행은 되지만. 코드를 수정한 것이기 때문에 매번 재패키징과, 빌드 베포 과정이 필요하다.
  • 이를 해결하기 위해 여러 옵션을 줄 수 있다.

UserService 실행하기 (Port 변경 1)

Modify options의 addVMOptions 을 클릭후 포트 추가
9002포트로 실행이 된다.
유레카 인스턴스로 다른 포트로 2개가 등록된것을 확인할 수 있다.

  • Run을 EditConfig 설정
    • 실행시 VM -options 를 통해 원하는 Port로 실행시점에 실행시킬수 있다.

UserService 실행하기(Port변경 2)

해당 터미널 이동후 명령어 실행

  • 해당 터미널에서 런타임시에 JVM에 옵션을 주어 Port 번호를 지정할 수가 있다.

UserService 실행하기(Port변경 3)

  • jar file로 패키징
    1. mvn clean
    2. mvn compile package
    3. java -jar -Dserver.port=9004./target/userservice-0.0.1-SNAPSHOT.jar 
      • 생성된 jar 파일을 실행시켜 준다.

Application.yml Port를 0으로 설정하기(Port변경 4)

RandomPort

  • YML을 Port를 0 값을 주게 되면, Port를 랜덤으로 설정해 준다.
  • 2개를 실행시키더라도, 1개밖에 보이지 않는다.
    • why? Application.yml에 설정된 port로 설정되었기 때문에 동적 포트 할당이 적용되지 않았다.

문제점 : 인스턴스가 똑같이 등록된다 -> 랜덤임의의 값으로 인스턴스 ID를 변경하자

인스턴스를 다르게 등록해 준다.
서로 다른 인스턴스로 등록되는걸 확인 할 수 있다.

 

728x90