인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김상운님의 프로필 이미지
김상운

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Spring Cloud Gateway - 프로젝트 생성

어노테이션을 달아야하는 경우가 궁금합니다.

해결된 질문

작성

·

275

0

1. 어떤 경우에

@EnableEurekaServer
@EnableDiscoveryClient

어노테이션을 붙여주나요? 처음 user-service 경우 유레카 서버에 등록하기 위해 @EnableDiscoveryClient 어노테이션을 사용했는데, 유레카에 등록할때만 사용하는 건가요?

2. 아래의 api gateway 설정 정보를 봤을땐 유레카 서버에 등록하지 않지만 defaultZone을 등록하는 경우는 무엇인가요?

eureka:
client:
fetch-registry: false
register-with-eureka: false
service-url:
defaultZone: http://localhost:8761/eureka

답변 2

2

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

1. Spring Boot Application이 Service Discovery 역할을 하기 위해서는 @EnableEurekaServer 설정을 해야합니다. 그리고, Eureka Server에 등록하는 Eureka Client들은 @EnableDiscoveryClietn를 설정하지 않아도 자동으로 등록되지만, 명시적으로 달아 주었습니다. 생략하셔도 상관없습니다. 

https://cloud.spring.io/spring-cloud-commons/multi/multi__spring_cloud_commons_common_abstractions.html

2. 강의에서 사용한 apigateway-service는 처음에 Eureka Server에 등록하지 않기 위해서 다음과 같은 설정을 하였지만, 후반부에서는 등록하는 설정으로 변경하고 있습니다. 추가로 eureka.client.register-with-eureka 설정을 지정하지 않으면, 자동으로 등록되기 때문에, 등록을 원치 않으면 해당 속성을 false로 변경하시면 됩니다.

eureka:
client:
register-with-eureka: true
fetch-registry: true

감사합니다.

안녕하세요.
"eureka.client.register-with-eureka 설정을 지정하지 않으면, 자동으로 등록되기 때문에.." 이 부분이 잘 이해되지 않아서요.

설정이 없는데, 자동으로 등록된다는건

1) @EnableDiscoveryClient  또는 @EnableEurekaClient 어노테이션을 사용했을 때
2) yml 에 eureka.client.service-url 설정이 있을 때

두가지 경우로 이해하면 될까요?

0

김상운님의 프로필 이미지
김상운
질문자

답변 감사합니다!ㅎㅎ 더욱 열심히 공부하겠습니다.

김상운님의 프로필 이미지
김상운

작성한 질문수

질문하기