y1551463

Load Balancing

LoadBalancing
a month ago
·
2 min read

로드 밸런싱

  • 네트워크 트래픽이나 작업 부하를 여러 서버 또는 리소스에 고르게 분배하는 기술이다

    • 시스템의 성능, 가용성, 확장성을 향상 시키고 특정 서버에 부하가 집중되는 것을 방지한다

클라이언트 사이드 로드 밸런싱

  • 클라이언트가 서버 요청을 보낼 때 서버의 위치를 직접 선택하여 트래픽을 분산하는 방식이다

    • 클라이언트가 직접 서버 인스턴스 목록을 관리하고 요청을 보낼 인스턴스를 선택한다

Feign Client

  • Spring Cloud에서 제공하는 HTTP 클라이언트이다

    • 선언형 HTTP 클라이언트로 인터페이스와 어노테이션 기반으로 다른 서비스와의 통신을 설정할 수 있다

      • 이로 인해 REST API 호출 코드를 간단하게 작성할 수 있다

      • 서비스 간의 통신 코드를 단순화하며, 서비스 이름으로 요청을 보낸다

Ribbon

  • 클라이언트 측 로드 밸런싱 라이브러리이며 클라이언트 요청을 여러 서버 인스턴스에 분산시킨다

  • 서비스 목록을 기반으로 라운드 로빈, 최소 연결 등의 다양한 알고리즘을 지원한다

    • 현재는 Spring Cloud LoadBalancer로 대체되고 있다고 함


- 컬렉션 아티클