[Spring Boot & MSA] Eureka Service Discovery(2)

원알렉스·2020년 8월 11일
0

Spring Boot MSA

목록 보기
2/12
post-thumbnail

깃허브 소스코드
Udemy 강의

🚀 Eureka Server 환경 구축

1) 의존성 설정

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

2) @EnableEurekaServer 어노테이션 추가

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(EurekaServerApplication.class, args);
	}
}

3) 프로퍼티 설정(Config Server 내의 eureka-server.yml)

  • registerWithEureka: false -> Eureka Service에 자신을 등록하지 않는다
  • fetchRegistry: false -> Registry 정보를 로컬에 캐싱하지 않는다
eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://localhost:8010/eureka/

🌟 Eureka Client 환경 구축

1) 의존성 설정

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2) @EnableEurekaClient 어노테이션 추가

@SpringBootApplication
@EnableEurekaClient
public class LicenseServiceApplication {

	public static void main(String[] args) {
		SpringApplication.run(LicenseServiceApplication.class, args);
	}
}

3) 프로퍼티 설정(Config Server 내의 license-service.yml)

  • preferIpAddress: true -> 서비스의 호스트 이름이 아닌 IP 주소를 Eureka에 등록하도록 지정

✔ IP 주소를 선호하는 이유

기본적으로 Eureka는 호스트 이름으로 접속하는 서비스를 등록합니다. 이것은 DNS가 지원된 호스트 이름을 할당하는 서버 기반 환경에서 잘 동작하기 때문입니다. 그러나 컨테이너 기반의 환경에서는 DNS 엔트리가 없는 임의로 생성된 호스트 이름을 부여받아 시작합니다. 따라서 해당 값을 true로 설정하지 않는다면 해당 컨테이너에 대한 DNS 엔트리가 없으므로 클라이언트 애플리케이션은 호스트 이름의 위치를 정상적으로 얻지 못하게 됩니다.

eureka:
  instance:
    preferIpAddress: true
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://localhost:8010/eureka/
profile
Alex's Develog 🤔

0개의 댓글