서비스 디스커버리 에이전트 구축: Spring Cloud Netflix

날아올라돼지야·2024년 8월 27일
0

Eureka를 사용하여 Eureka 서버 설정하기

이번 강의에서는 Spring Cloud Netflix 프로젝트의 Eureka를 사용하여 서비스 디스커버리 에이전트를 구축하는 방법을 다룹니다. 이는 마이크로서비스 네트워크 내에서 각 서비스가 서로를 발견하고, 등록하는 중요한 역할을 합니다. 단계별로 Eureka 서버를 설정하는 과정을 살펴보겠습니다.

1. 새 섹션 폴더 생성 및 초기 코드 복사

  • Section 8이라는 새로운 폴더를 생성하고, Section 6의 코드를 복사하여 붙여넣습니다.
  • Section 7의 코드는 MySQL 관련 변경 사항이 포함되어 있으므로, H2 데이터베이스를 사용할 Section 6 코드를 기반으로 진행합니다.

2. IntelliJ에서 새 프로젝트 열기

  • IntelliJ IDEA에서 Section 8 폴더를 열어 새로운 작업 공간을 만듭니다.
  • Spring Cloud Bus와 RabbitMQ 관련 라이브러리를 제거하여 불필요한 의존성을 최소화하고, 시스템 성능을 유지합니다.
  • 각 마이크로서비스(Accounts, Loans, Cards)에서 관련된 pom.xmlapplication.yml 파일에서 Spring Cloud Bus 및 RabbitMQ 관련 코드를 삭제합니다.

3. Eureka 서버 설정

  • Spring Initializr를 사용하여 새로운 Eureka 서버 프로젝트를 생성합니다.
  • Maven 빌드 도구를 사용하고, Java 17을 선택합니다.
  • 필요한 종속성으로 Eureka Server, Config Client, Actuator를 추가합니다.
  • 생성된 Maven 프로젝트를 IntelliJ IDEA로 불러옵니다.

4. Eureka 서버 메인 클래스 설정

  • 메인 클래스에 @EnableEurekaServer 애너테이션을 추가하여 해당 프로젝트를 Eureka 서버로 설정합니다.
  • 이 애너테이션은 일반 Spring Boot 애플리케이션을 서비스 디스커버리 에이전트로 변환합니다.

5. Eureka 서버의 application.yml 설정

  • 기본 application.properties 파일을 application.yml 파일로 변환합니다.
  • Config Server에서 설정을 가져오기 위해 spring.config.import 속성을 추가합니다.
  • Actuator의 Readiness와 Liveness 설정을 통해 건강 상태를 모니터링할 수 있도록 설정합니다.

6. Eureka 서버 설정 파일 (eurekaserver.properties)

  • eurekaserver.properties 파일을 GitHub의 Config Server 저장소에 추가합니다.
  • 이 파일에는 Eureka 서버의 포트, 호스트 이름, 등록 및 페치 레지스트리 옵션 등이 포함됩니다.
  • Eureka 서버가 자신을 레지스트리에 등록하지 않도록 registerWithEureka 속성을 false로 설정하고, 레지스트리를 페치하지 않도록 fetchRegistry 속성을 false로 설정합니다.

7. Eureka 서버 시작 및 테스트

  • Config Server를 먼저 시작하여 Eureka 서버가 필요한 설정을 가져올 수 있도록 합니다.
  • Eureka 서버를 디버그 모드에서 시작하고, 성공적으로 시작되었는지 확인합니다.
  • localhost:8070으로 접속하여 Eureka 대시보드를 확인합니다. 여기에서 현재 등록된 마이크로서비스 인스턴스를 확인할 수 있습니다. 현재는 Eureka 서버만 실행 중이므로 등록된 인스턴스가 없습니다.

결론

이 강의에서는 Spring Cloud Netflix의 Eureka를 사용하여 서비스 디스커버리 에이전트를 설정하고, 마이크로서비스 네트워크 내에서 각 서비스가 어떻게 등록되고 탐색되는지를 배웠습니다. 앞으로는 각 마이크로서비스가 Eureka 서버에 자신을 등록하고, 서로의 정보를 검색하는 방법을 구현할 것입니다.

profile
무슨 생각하며 사니

0개의 댓글