Spring

유레카에서 IP받아오기

까망거북 2022. 6. 20. 15:25

 

 

MSA서비스 구현중 GW하단에서 다른 서비스에 접속 정보를 가져와야 하는경우가 있다.

이경우 IP와 PORT를 설정 파일에 넣는 방법도 있으나 이렇게 하면 MSA를 구축한 이유가 없다.

그래서 유레카에 등록된 다른 서비스의 IP/PORT의 정보를 가져오는 방법을 설명한다.

 

일단 유레카와 연동이 되어 있다는 가정하에

 

private final LoadBalancerClinet loadBalancer;


public String checkServiceIp()
{
	ServiceInstance serviceIns = loadBalancer.choose("SERVICE_ID"); // --> 유레카에 등록된 접속을 원하는 서비스 ID
    
    log.info("service url={}", serviceIns.getUri());
    log.info("service port={}", serviceIns.getPort();
    log.info("service id={}", serviceInstanceId();
    
}

 

위와 같이 하면 url에 유레카에서 할당한 서비스 HOST NAME(?)으로 값이 나온다.

 

IP로 값을 얻고 싶으면..

설정파일에 손을 대면 된다.

 

application.yml

eureka:
	instance:
    	prefer-ip-address: true

 

이럼 깔끔하게 IP정보를 얻을수 있다.