y1551463

Spring Cloud Eureka: 서비스 디스커버리 실습(간단)

MSAEurekaTIL
a month ago
·
4 min read

서비스 디스커버리

  • 독립된 서비스 간의 각 서비스 위치를 동적으로 관리하고 찾아주는 기능이다

    • 서비스는 Eureka 서버에 등록되고 다른 서비스는 Eureka 서버를 통해 등록된 서비스를 조회하여 통신한다

Eureka란?

  • 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리

  • 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장

  • 여러 인스턴스를 지원하여 고가용성을 유지할 수 있음

Eureka 서버를 구성 및 각 클라이언트 등록

Eureka 서버의 역할

  • 클라이언트(서비스)들이 자신의 정보를 등록하고, 다른 서비스의 정보를 조회할 수 있는 "중앙 저장소" 역할

    • 프로젝트 생성 시 Eureka 서버 Dependencies 필요

Eureka 서버 설정

server.port=19090

# 다른 Eureka 서버에 이 서버를 등록하지 않음
eureka.client.register-with-eureka=false

# 다른 Eureka 서버의 레지스트리를 가져오지 않음
eureka.client.fetch-registry=false
eureka.instance.hostname=localhost
eureka.client.service-url.defaultZone=http://localhost:19090/eureka/
@SpringBootApplication
@EnableEurekaServer // Eureka 서버로 동작하게 됨
public class ServerApplication {

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

}

Eureka 클라이언트의 역할

  • 자신을 Eureka 서버에 등록하고, 필요 시 다른 서비스를 조회할 수 있는 역할.

    • 프로젝트 생성 시 Eureka 클라이언트 Dependencies 필요

Eureka 클라이언트 설정

# 클라이언트 A
server.port=19091
eureka.client.service-url.defaultZone=http://localhost:19090/eureka/

# 클라이언트 B
server.port=19092
eureka.client.service-url.defaultZone=http://localhost:19090/eureka/
  • 클라이언트는 Eureka 서버(localhost:19090)와 통신하여 자신을 등록하고, 필요 시 등록된 다른 서비스의 정보를 조회한다

  1. Eureka 서버를 실행 후 브라우저에서 http://localhost:19090/eureka에 접속하면 Eureka 대시보드를 확인할 수 있다

  2. 각 클라이언트를 실행한 뒤 Eureka 서버 대시보드에서 등록된 서비스 목록을 확인할 수 있다

    • 서비스 이름, 인스턴스 ID, 상태 등이 표시

2219

Spring Cloud Eureka를 통해 간단한 설정만으로 서비스 등록/조회가 가능한 환경을 구축할 수있다


- 컬렉션 아티클