로드밸런싱이란?

  • 네트워크 트래픽을 여러 서버로 분산시켜 서버의 부하를 줄이고 시스템의 성능과 가용성을 높이는 기술
  • 특정 서버에 부하가 집중되는 것을 방지
  • 클라이언트 사이드 로드밸런싱, 서버 사이드 로드 밸런싱
    • 클라이언트 사이드 로드밸런싱 : 클라이언트가 직접 서버 하나를 선택하여 요청을 보내는 방식

들어오는 트래픽을 분산시켜 주는 것 !

FeignClient

  • Spring Cloud에서 제공하는 HTTP 클라이언트
  • Eureka와 같은 서비스 디스커버리와 연동하여 동적으로 서비스 인스턴스를 조회하고 로드밸런싱 수행

Ribbon

  • 클라이언트 사이드 로드 밸런서
  • 다양한 로드밸런싱 알고리즘 지원

로드 밸런싱 알고리즘

  1. 라운드로빈
    1. 각 서버에 순차적으로 요청 분배
  2. 가중치 기반 로드 밸런싱
    1. 각 서버에 가중치를 부여하고 가중치에 비례하여 요청 분배

FeignClient와 Eureka 연동하기

NOTE

유레카 서버 하나에 주문 인스턴스 1개와 같은 기능의 포트만 다른 상품 인스턴스 3개 연결하기