Ribbon 이란?

  • 넷플릭스가 개발한 클라이언트 사이드 로드 밸런서
  • 서비스 인스턴스 간의 부하를 분산

특징

  • 서버 리스트 제공자
    • Eureka로 부터 서비스 인스턴스 리스트를 제공받아,
      로드 밸런싱에 사용
  • 로드밸런싱 알고리즘(스케줄러)
    • 라운드 로빈, 가중치 기반 등 다양한 로드 밸런싱 알고리즘 지원 
    • 라운드 로빈
      • 리스트 순서대로 분산, 한 바퀴 다돌면 다시 처음 부터
      • 간단한 처리
      • 단순 순회
  • Failover
    • 요청 실패 시 다른 인스턴스로 자동 전환
    • Fallback
반응형

Eureka 란?

  • Spring Cloud의 주요 모듈로 서비스 등록 및 디스커버리를 수행
  • 넷플릭스에서 개발한 서비스 디스커버리 서버
  • MSA에서 각 서비스의 위치를 동적으로 관리

특징

  • 서비스 레지스트리
    • 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소
  • 헬스 체크(Health check)
    • 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장
반응형

Spring Cloud 란?

정의

  • Spring Cloud는 마이크로서비스 개발을 위해 '다양한 도구'와 '서비스'를 제공
  • Spring framwork의 확장
  • MSA를 쉽게 구현하고 운영할 수 있도록 도움

주요 기능

  • 서비스 등록 및 디스커버리
    • 종류 : Eureka, Consul, Zookeeper
    • Eureka : application.yml에 정의하는 것으로 간단히 서비스를 등록할 수 있도록 도와줌.
  • 로드 밸런싱
    • 종류 : Ribbon, Spring Cloud LoadBalancer
    • Ribbon
      • 각 요청에 맞는 서비스로 요청을 전달
      • 동일한 서비스지만 port만 다르게 지정해둔 경우에 주로 '라운드 로빈' 스케줄링 기법으로 요청을 분배
      • 다른 스케줄링 기법도 가능.
  • 서킷 브레이커
    • 종류 : Hystrix, Resilience4j
    • Rsilience4j : 업데이트로 다양한 최신 기능을 제공
    • Hystrix : 현업에서 사용될 확률이 높음. 현업에서 framwork의 버전을 올리는 것은 주의가 필요하기 때문
  • API 게이트 웨이
    • 종류 : Zuul, Spring Cloud Gateway
    • Spring Cloud Gateway : 업데이트로 다양한 최신 기능을 제공
    • Zuul : 현업에서 사용될 확률이 높음. 현업에서 framwork의 버전을 올리는 것은 주의가 필요하기 때문
  • 구성 관리
    • Spring Cloud Config
      • 각 서비스에서 사용되는 Config들을 한 Config서비스에서 관리할 수 있도록 도움.
      • 중복된 Config는 각 서비스에서 정의할 필요가 줄어듬
      • 설정 변경 시 서비스 재시작 없이 실시간으로 반영
  • 분산 추적
    • 종류 : Spring Cloud Sleuth, Zipkin
    • Zipkin
      • 각 요청들이 어떤 서비스를 거치는지 보여줌. (스케줄링 표, 시각화 그래프)
      • 각 요청들이 수행되기까지 걸리는 시간을 나타내고,
        어떤 서비스를 거친다면, 각 서비스에서 요청이 처리되기까지 얼마나 시간이 걸렸는지 보여줌.
        • 특정 요청에서 소요시간이 길었던 부분을 확인해 최적화할 지점을 찾을 수 있음
  • 메시징
    • Spring Cloud Stream

 

Spring Cloud 공식 사이트

 

Spring Cloud

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, short lived microservices and

spring.io

 

반응형

+ Recent posts