728x90
Spring Cloud Netflix Eureka
Spring Cloud Netflix Eureka는 Client-Side discovery 방식의 Service Discovery중 하나이다.
Service Discovery의 기능은 크게 2가지이다.
- 등록 : microservice를 사용할 수 있도록 등록해준다.
- 검색 : Api Gateway 혹은 라우터에게 그 서비스들을 알려주도록 검색하는 기능을 제공한다.
Eureka 서버 생성
@SpringBootApplication
@EnableEurekaServer
public class DiscoveryserviceApplication {
public static void main(String[] args) {
SpringApplication.run(DiscoveryserviceApplication.class, args);
}
}
@EnableEurekaServer
라는 어노테이션을 통해 해당 애플리케이션을 서버로 등록해 줄 수 있다.
Eureka Client
Eureka Client LoadBalancer 방식을 기본으로 사용하는 로드밸런서를 내장하고 있다.
로드밸런싱 방식에는 여러방식이 있지만 server와 client로 구분해 살펴볼 수 있다.
- server side loadBalancing : 스위치를 거쳐 분산처리를 하는 방식
- client side loadBalancing : 스위치를 거치지 않고 클라이언트가 처리하는 방식
등록
@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}
@EnableDiscoveryClient
라는 어노테이션을 통해 해당 애플리케이션을 클라이언트로 등록할 수 있다.
설정
유레카 서버 혹은 microservice를 등록하기 위해서는 설정이 필요하다.
방법
- application.yml을 작성
- 별도의 설정 클래스를 만들어 설정을 적용
yml파일에 들어갈 유레카 서버 속성을 살펴보자
유레카 서버 속성
- 유레카 설절 구분
- 가지 보호 모드
- 레지스트리 등록 여부/캐싱 여부
- 레지스트리 갱신 - 서비스 등록 관련
- 레지스트리 갱신 - 서비스 해제 관련
- IP 주소 우선하기
- 유레카 피어링 설정
유레카 설정 구분
eureka.server.
: Eureka Server 관련 설정eureka.client.
: 클라이언트가 레지스트리에서 다른 서비스의 정보를 얻을 수 있는 설정eureka.instance.
: 포트나 이름등 현재 Eureka Client의 행동을 재정의하는 설정
자기 보호 모드
일시적인 네트워크 장애로 인한 서비스 해제 막기 위한 모드이다.(운영단계에서는 항상 활성화시켜야 한다.) eureka.server.enable-self-preservation
유레카 서버는 서비스의 각 인스턴스로부터 생존신호(heartbeat) 메시지를 받게 되는데, 설정된 기간 동안 하트비트 메시지를 받지 못하면 레지스트리에서 서비스가 삭제된다.
이때, 등록된 모든 서비스가 해제되는 것을 방지하기 위해 자기 보호 모드가 필요한것이다.
레지스트리 등록 여부/캐싱 여부
eureka.client.register-with-eureka
: 레지스트리에 자신을 등록할지에 대한 여부eureka.client.fetch-registry
: 레지스트리에 있는 정보를 가져올지에 대한 여부- 만약 해당 속성을 true 로 설정 시 검색할 때마다 Eureka Server를 호출하는 대신 레지스트리가 로컬로 캐싱됨
- 또한 30초마다 Eureka Client가 유레카 레지스트리 변경 사항 여부 재확인함
참고 자료:
https://velog.io/@ksh9409255/Service-Discovery
'백엔드 > MSA' 카테고리의 다른 글
[MSA] Kafka Connect (0) | 2023.05.24 |
---|---|
[MSA] Spring Cloud Gateway (0) | 2023.05.13 |
[MSA] Service Discovery (0) | 2023.05.11 |