티스토리 뷰

MSA

7. Service Registry - Eureka

wavid 2020. 12. 23. 16:37
  • Ribbon 사용 시 서버 목록을 yml에 직접 넣었는데, 자동화 할 방법은?
  • '서버가 새롭게 시작되면 그것을 감지하여 목록에 자동으로 추가되고, 서버가 종료되면 자동으로 목록에서 삭제하기 위한 방법은 없을까?'

 

Service Registry 

  • Service Registry
    • 서비스 탐색, 등록
    • 클라우드의 전화번호부
    • (단점) 침투적 방식 코드 변경
  • DiscoveryClient
    • spring-cloud에서 서비스 레지스트리 사용 부분을 추상화(Interface)
    • Eureka, Consul, Zookeeper, etcd 등의 구현체가 존재

  • Ribbon은 Eureka와 결합하여 사용 할 수 있으며, 서버 목록을 자동으로 관리.

 

Eureka Server (Registry) 만들기

@EnableEurekaServer
@SpringBootApplication
public class EurekaServiceApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaServiceApplication.class);
	}
}
  • @EnableEurekaServer 어노테이션을 적용하면 됨

 

Eureka Client 만들기

  • 내가 호출의 대상이 되고 싶을 때
@EnableEurekaClient
@SpringBootApplication
public class EurekaServiceApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaServiceApplication.class);
	}
}
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  • @EnableEurekaClient 어노테이션을 적용
  • 설정파일에 Eureka 서버 정보 등록
  • 기존 listOfServers 설정 제거

 

Eureka in Spring Cloud

  • Eureka 클라이언트 설정을 해놨다면, 서버 시작 시 Eureka Server(Registry)에 자동으로 자신의 상태를 등록함 (Up) (eureka.client-register-with-eureka : true)
  • 주기적으로 HeartBeat로 Eureka 서버에 자신이 살아있음을 알림 (eureka.instance.lease-renewal-interval-in-seconds: 30)
  • 서버 종료 시 Eureka Server에 자신의 상태 변경 (Down) 혹은 자신의 목록 삭제
  • Eureka 상에 등록된 이름은 'spring.application.name' 이거를 통해서 등록.

 

정리

  • @EnableEurekaServer / @EnableEurekaClient를 통해 서버 구축, 클라이언트 Enable 가능함.
  • @EnableEurekaClient를 붙인 Application은 Eureka 서버로부터 남의 주소를 가져오는 역할과 자신의 주소를 등록하는 역할 둘 다 수행 가능하다.
  • Eureka Client가 Eureka Server에 자신을 등록할 때 'spring.application.name'이 이름으로 사용됨.

 

[참고 및 출처]

www.youtube.com/watch?v=iIqamVxYmUk&list=PL9mhQYIlKEhdtYdxxZ6hZeb0va2Gm17A5&index=6

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함