Microservice 랜덤 포트로 실행하기

최준호·2022년 2월 14일
0

Microservice Architecture

목록 보기
3/32
post-thumbnail

✍랜덤 port 방법 적용

매번 서비스를 실행할 때 port를 지정해주고 실행한다면 개발자는 포트번호를 매번 확인해야하며 서비스를 갑자기 확장해야할 때 귀찮은 일이 많아진다. 그래서 Spring boot에서 자체적으로 제공하는 랜덤 포트 방법을 적용시켜서 실행시켜보자.

🔨설정 변경

지난 포스트에서 작성한 user-service의 yml파일을 수정한다.

server:
  port: 0 #0번 포트로 지정하면 랜덤 포트를 사용하겠다는 설정

spring:
  application:
    name: user-service

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka

다음과 같이 수정한 후

지난 시간에 2번째 실행한 옵션을 지워준다. 혹은 1번 서버로 켜서 테스트해도 된다.

실행시키면 다음과 같이 랜덤 포트로 실행된다. (52851 포트로 실행됨)

유레카에서도 확인이 가능하다.

터미널에서 실행하기 위해

mvn spring-boot:run

만으로 실행시켜주면

이전처럼 포트 옵션을 따로 주지 않아도 랜덤한 포트로 잘 실행된다.

하지만 유레카에서는 하나의 서비스만 인식하고 있는 문제가 발생한다.
그 이유는 현재 서비스의 ip:서비스 이름:포트의 노출값이 동일하기 때문에 유레카에서 하나로 밖에 인식하지 않는 현상인데

server:
  port: 0

spring:
  application:
    name: user-service

eureka:
  instance:
    instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}  #Eureka에 등록되는 서비스 이름에 대한 설정값
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka

yml 파일에 instance에 대한 정보를 추가로 입력해주자.

다시 서비스를 실행한 뒤

유레카를 확인하면 두개의 다른 서비스의 이름으로 등록된 서비스들을 확인할 수 있다.

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글