로드밸런싱이란?
- 네트워크 트래픽을 여러 서버로 분산시켜 서버의 부하를 줄이고 시스템의 성능과 가용성을 높이는 기술
- 특정 서버에 부하가 집중되는 것을 방지
- 클라이언트 사이드 로드밸런싱, 서버 사이드 로드 밸런싱
- 클라이언트 사이드 로드밸런싱 : 클라이언트가 직접 서버 하나를 선택하여 요청을 보내는 방식
들어오는 트래픽을 분산시켜 주는 것 !
FeignClient
- Spring Cloud에서 제공하는 HTTP 클라이언트
- Eureka와 같은 서비스 디스커버리와 연동하여 동적으로 서비스 인스턴스를 조회하고 로드밸런싱 수행
Ribbon
- 클라이언트 사이드 로드 밸런서
- 다양한 로드밸런싱 알고리즘 지원
로드 밸런싱 알고리즘
- 라운드로빈
- 각 서버에 순차적으로 요청 분배
- 가중치 기반 로드 밸런싱
- 각 서버에 가중치를 부여하고 가중치에 비례하여 요청 분배
FeignClient와 Eureka 연동하기
NOTE
유레카 서버 하나에 주문 인스턴스 1개와 같은 기능의 포트만 다른 상품 인스턴스 3개 연결하기