본문 바로가기

빗썸 테크코스 아카데미/2주차(WebFlux)

Eureka Server

Eureka Server란?

Eureka는 Middle-tier server( 비즈니스 로직이 위치한 애플리케이션 서버단)의 로드밸런스와 Failover를 위해 서비스를 배치해주는 REST 기반 서비스이다. 이 서비스는 주로 AWS Cloud에서 사용되고, 이를 Eureka Server라 부른다. 

Eureka Client란?

 Java 기반 클라이언트 요소도 있는데, 서버와 상호작용을 더 쉽게 해주는 것을 Eureka Client라 부른다. 클라이언트도 Round-Robin 방식을 기본으로 사용하는 로드밸런스를 내장하고 있다. 
Netflix에서는, Eureka에서 기본 로드 밸런스 외에도 트래픽, 리소스 사용량, 에러 상황 요소에 따라 로드밸런스를 할 수 있도록 제공해주고 있다.

Eureka Server의 필요성

AWS Cloud에서는 특성상 서버가 자주 꺼졌다 켜젔다 한다. IP 주소와 hostname을 이용하는 기존 로드밸런스와 다르게, AWS에서는 로드밸런스는 좀 더 정교한 능력을 요구한다. IP 주소는 수시로 변하기 때문에 로드밸런스가 서버를 등록하고 해지하는 작업을 유동적으로 할 수 있게 해야한다. 
 
 AWS에서는 아직 middle tier 로드밸런스를 제공하지 않기 때문에, Eureka에서는 이를 제공해준다.

Architecture

 

생성법

제일 처음에 할 일은 아래의 dependency를 추가하는 일입니다. (Gradle을 기준으로 세팅하였습니다.)

그리고 Main Java class파일로 가셔서 유레카 서버의 역할을 수행할 수 있게 @EnableEurekaServer annotation을 붙입니다.

 

그리고 application.yml(설정파일)에 다음의 사항을 입력합니다.

설명이 필요한 부분은 다음 3가지 입니다.

1. defaultZone = 유레카 서버의 주소를 나타내는 부분입니다.

2. register-with-eureka = 유레카 서버 자체도 서비스를 제공할때, 본인도 유레카 서버에 등록할지 여부를 묻는 항목입니다.

3. fetch-registry = 좀더 빠른 속도를 위해 내부 캐시 레지스터를 사용할지 여부에 대해 묻는 항목입니다.

'빗썸 테크코스 아카데미 > 2주차(WebFlux)' 카테고리의 다른 글

Circuit Breaker - resilience4j  (0) 2022.07.31
WebFlux(User service 구현)  (0) 2022.05.09
API Gateway  (0) 2022.05.09