본문 바로가기
SI 업무/MSA관련

2. Discovery Service ( netflix 의 Eureka)

by 새로운걸 배우는게 너무 싫은 IT 복붙러 2024. 12. 24.
728x90

1. MSA 에서 Discovery Service 란 무엇인가?

    MSA 는 물리적으로 다른 서버에 복수개의 instance 상태로 Service 가 떠 있는 상테임.

    하여 여러 서버에 분산되어 있는 Service 들의 Instance 정보를 관리해 주는 것이 필요함.
    실생활에 예를 들면 

    Discovery Serivce 는 일종의 전화 번호부

    Service Instacne는 중화요리 가게.

   전화번호부로 요리 가게의 위치와 전번을 찾고 Service를 요청 하는 구조임.

 


  

2. Discovery Service 생성 하기

  • Spring Cloud 를 이용해  Discovery Service 를 생성한다.
  • Discovery Service 생성시 추가해야 할 의존성은 netflix eureka server
  • application.yml 설정 해야 한다.

 

  • Spring Boot main class 에 @annotation을 추가 하여 Discovery Sever 란걸 알려줌.
    (@EnableEurekaServer)

package choStudy.msaDiscovery;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class MsaDiscoveryApplication {

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

}

3. Discovery Service 에 등록될 UserService 생성 하기.

  •  아래 의존성을 넣어서 UserService 프로젝트 생성 한다.  

  • applicaiton.yml 파일을 수정 한다.

  • Spring Boot main class에 @annotation 추가하여 이것이 Discovery Service 에 등록되는 service 란걸 명시한다.
    (@EnableDiscoveryClient) 

package com.example.userSevice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class UserSeviceApplication {

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

}

4. Discovery Service Server start 한다.
    Discovery Client start 한다.
    그후 Server 의 main board 에 보면 client 가 등록된 것이 보인다.

728x90