minOS

MSA 시작 본문

TIL/MSA

MSA 시작

minOE 2025. 3. 12. 02:45
728x90

Eureka Server vs. Eureka Client 

애플리케이션 공식 명칭 역할
DiscoveryserviceApplication Eureka Server (서비스 레지스트리) 서비스 등록 및 검색 기능 제공
UserServiceApplication Eureka Client (서비스 제공자 & 소비자) 서비스 등록 및 다른 서비스 호출 가능

Eureka Server는 서비스 등록소(Registry) 역할을, Eureka Client는 마이크로서비스로서 등록하고 검색하는 역할을 수행



Eureka Server

역할 설명
서비스 등록 (Service Registration) 마이크로서비스가 Eureka Server에 자신의 정보를 등록하여 다른 서비스가 이를 검색할 수 있도록 함
서비스 검색 (Service Discovery) 등록된 서비스 목록을 관리하고, 다른 마이크로서비스가 특정 서비스의 위치를 조회할 수 있도록 지원
헬스 체크 (Health Check) 등록된 서비스의 상태를 주기적으로 확인하고, 정상적으로 작동하지 않는 서비스는 목록에서 제거
로드 밸런싱 지원 (Load Balancing Support) 같은 서비스를 제공하는 여러 인스턴스가 있는 경우, 클라이언트가 균등하게 분배하여 사용할 수 있도록 정보 제공
자동 서비스 등록 및 제거 (Self-Preservation & Expiry) 일정 시간 동안 응답이 없는 서비스는 자동으로 등록 취소되며, 네트워크 장애 시에도 서비스 정보가 유지됨




Eureka Client 

역할 설명
서비스 등록 (Service Registration) Eureka Server에 자신의 정보를 등록하여 다른 서비스가 접근할 수 있도록 함
서비스 검색 (Service Discovery) Eureka Server에서 다른 마이크로서비스의 정보를 조회하여 동적으로 호출할 수 있도록 지원
로드 밸런싱 (Load Balancing) 여러 개의 서비스 인스턴스가 있을 경우, 부하를 분산하여 적절한 서비스에 요청을 보낼 수 있음
자동 서비스 갱신 (Service Renewal) 주기적으로 Eureka Server에 자신이 살아있다는 신호(heartbeat)를 보내며, 일정 시간 동안 응답하지 않으면 자동 제거됨
Failover & 장애 복구 (Failover & Recovery) Eureka Server가 다운되더라도, 로컬 캐시에 저장된 정보를 활용하여 서비스 검색을 지속할 수 있음

 

설정 방법 - Eureka Server

@SpringBootApplication
@EnableEurekaServer
public class DiscoveryserviceApplication {

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

}


application.yaml 설정 예시

server:
  port: 8761

spring:
  application:
    name: discoveryservice

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

 

 

Eureka Client 

@SpringBootApplication
@EnableDiscoveryClient
public class UserServiceApplication {

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

}


application.yaml 설정 예시 
server 포트 번호 : 0으로 하면 랜덤으로 번호 자동으로 줌

server:
  port: 0


spring:
  application:
    name: user-service


eureka:
  instance:
    instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8761/eureka

 

 

 

 

Eureka Server , Eureka Client  서버 실행 결과

 

위에 포트번호 53465 인 것 확인 가능

 

728x90

'TIL > MSA' 카테고리의 다른 글

Docker-compose 개발 환경 세팅하기  (1) 2025.03.15