Ribbon이란?

YoungHo-Cha·2021년 11월 17일
1

Cloud

목록 보기
4/4
post-thumbnail

오늘은 Spring Cloud Ribbon에 대해서 알아보자.


🚗목차

  • Server Side vs Client Side
  • Ribbon 이란?

🧐Server Side vs Client Side

가장 먼저 Server Side Load Balancing과 Client Side Load Balancing에 대해서 알아야 한다.

🔎Server Side Load Balancing

지금까지 일반적으로 사용하는 로드밸런싱 처리 기기는 L4 Switch와 같은 H/W 장비였다.

위 그림에서 보면, L4&L7 하드웨어 장비가 서버에 Load Balancing을 수행하는 것을 볼 수 있다.

  • 이 경우에는 하드웨어적인 비용이 생긴다.
  • 서버가 증감할 경우에 하드웨어 장비에 직접 등록을 해야한다.

한 마디로 호출을 할 때 마다, 하드웨어 장비를 거쳐야 한다.

🔎Client Side Load Balancing

Client Side Load Balancing은 다음 그림을 보자.

중간에 H/W 장비를 거치지 않고 클라이언트가 직접 Load Balancing을 수행한다.

  • 이 경우 Client가 모든 서버(모듈)에 대한 연결 정보를 가지고 있어야 한다.
  • 또한 Client가 직접 상대 서버가 살아있는지 체크를 해야 한다.

우리는 Eureka를 통해서 Client에서 유기적으로 연결 정보를 값, Health Check를 하는 것을 알고 있다.


🧐Ribbon이란?

Netflix에서 제공한 OSS이다. Client Side Load Balancer 이다.

  • 일반적인 Spring cloud framework에서는 LB가 API Gateway에 embed된다.

  • Ribbon은 Client Side 이기 때문에 각 모듈에 embed 된다.

🔎Ribbon이 왜 필요한가?

  • 위에서 언급이 되었던 대로, 어플리케이션(모듈) 사이의 L/B를 위해서 필요하다.

  • Ribbon은 그 외 정교한 L/B설정을 제공한다.

  • Eureka, Zuul에 최적화 되어 있다.


📋마치며

오늘은 Ribbon에 대해서 알아보았다. 다음에 Ribbon을 적용할 때에, 세부적인 코드를 다룰 예정이다!


🧷Reference

profile
관심많은 영호입니다. 궁금한 거 있으시면 다음 익명 카톡으로 말씀해주시면 가능한 도와드리겠습니다! https://open.kakao.com/o/sE6T84kf

0개의 댓글