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정보를 얻을수 있다.