Skip to content

Latest commit

 

History

History
73 lines (64 loc) · 1.99 KB

4.Eureka.md

File metadata and controls

73 lines (64 loc) · 1.99 KB

Dynamic Service Discovery - Eureka

Service Registry

  • 서비스 탐색, 등록
  • 클라우드의 전화번호부
  • 코드를 변경해야하는 단점이 존재

Discovery Client

  • spring-cloud에서 서비스 레지스트리 사용 부분을 추상화 (interface화)
  • Eureka, Consul, Zookeeper, etcd 등의 구현체가 존재

Spring Cloud에서의 Eureka

  • 서버 시작 시 Eureka Server(Registry)에 자신의 상태를 등록(UP)

    eureka.client.register-with-eureka: true

  • 주기적으로 Eureka Server에 자신이 살아있음을 알림

    eureka.instance.lease-renewal-interval-in-seconds: 30

  • 서버 종료 시 Eureka Server에 자신의 상태를 변경(DOWN) 혹은 삭제
  • Eureka 상에 등록된 이름은 spring.application.name

Eureka Server(Registry) 만들기

compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
@EnableEurekaServer
@SpringBootApplication
public class EurekaServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServiceApplication.class);
    }
}

Eureka Client 만들기

호출의 대상이 되는 것

compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
@EnableEurekaClient // 조금 더 추상적으로 선언하고 싶다면 @EnableDiscoveryClient를 사용해도 무관하다.
@EnableCircuitBreaker
@SpringBootApplication
public class HomeApplication {
    public static void main(String[] args) {
        SpringApplication.run(HomeApplication.class);
    }
}
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka

RestTemplate에 Eureka 적용

서버 주소는 Eureka Server에서 가져온다.

# HomeApplication의 yml
external:
  ribbon:
#    listOfServers: localhost:8081, localhost:9999
    MaxAutoRetries: 0
    MaxAutoRetriesNextServer: 1

예제 코드