브로커 로드 밸런싱 | 개요

브로커 로드 밸런싱 | 개요 (Broker load balancing | Overview)

로드 밸런싱은 다른 분산 시스템처럼 메시징·스트리밍 시스템에서도 중요해요. 그것이 없으면 로드 불균형이 핫-스팟 브로커를 만들어 성능 저하, 클러스터 사용 불가, 브로커 리소스 낭비를 초래할 수 있어요. 이 페이지에서는 분산 스트리밍 시스템에서 로드 밸런싱의 도전 과제와 Pulsar가 어떻게 해결하는지 설명해요.

출처: 문서

본문

분산 스트리밍 시스템에서 로드 밸런싱의 도전 과제 (Challenges of load balancing in distributed streaming systems)

다른 분산 시스템처럼 로드 밸런싱은 메시징·스트리밍 시스템에서 중요해요. 그것이 없으면 로드 불균형이 핫-스팟 브로커를 만들어 성능 저하, 클러스터 사용 불가, 브로커 리소스 낭비를 초래할 수 있어요.

예측할 수 없는 토픽 볼륨과 분산 브로커 간의 물리적 거리 때문에 브로커 간에 메시지 부하를 동적으로 분산하는 것은 쉽지 않아요. 시스템이 성능을 해치지 않으면서 변화하는 조건에 따라 메시지 부하를 지속적으로 모니터링하고 라우팅해야 해요. 예를 들어:

  • 토픽이 높은 트래픽을 받아 특정 브로커의 CPU·메모리 리소스를 소진하면, 클러스터가 과부하 브로커를 오프로드하고 부하를 다른 브로커에 재분산해요.
  • 브로커가 낮은 트래픽을 경험하거나 유휴 상태가 되거나 추가·제거되면, 클러스터가 리소스 낭비를 피하기 위해 부하를 리밸런싱해요.
  • 토픽이 다른 브로커로 재분산되면, 클러스터는 토픽이 클라이언트에게 즉시 사용 가능하도록 보장해요. 토픽은 영속, 순서, 중복 제거, 구독 유형 등 시스템 성능을 계속 보장해요.

Pulsar의 브로커 로드 밸런싱 (Broker load balancing in Pulsar)

Pulsar는 세그먼트 중심 아키텍처를 사용하고 메시지 서빙과 저장 계층을 분리하기 때문에 로드 밸런싱에 이점을 갖도록 설계됐어요.

  • 영속 계층(BookKeeper): 토픽의 메시지 세그먼트는 클러스터의 모든 부키에 걸쳐 균형 잡혀요. 개별 부키의 저장 용량이 바닥나면 나머지 세그먼트는 사용 가능한 부키에 로드돼요.
  • 서빙 계층(broker): 토픽 재배치(균형)는 매끄러워요. 브로커는 토픽을 리밸런싱할 때 한 브로커에서 다른 브로커로 메시지를 복사할 필요가 없어요. 대신 현재 소유 브로커가 토픽과 클라이언트 세션을 일시적으로 닫고 선택된 브로커로 소유권을 전송해요. 그런 다음 선택된 브로커가 토픽 소유권을 가져오고 클라이언트에 토픽 세션을 열어요.

Pulsar는 자동 브로커 로드 밸런싱을 사용해 브로커의 부하를 내부적으로 모니터링하고, 가능한 한 고르고 동적이며 유연하게 모든 사용 가능한 브로커의 부하에 따라 토픽 세션을 동적으로 균형 잡아요. 그 결과 성능, 가용성, 리소스 사용이 개선돼요.

  • 다양한 사용 시나리오를 보려면 Broker load balancing | Use cases.
  • 기능을 탐구하려면 Broker load balancing | Features.
  • 장점을 이해하려면 Broker load balancing | Benefits.
  • 핵심 기초를 배우려면 Broker load balancing | Concepts.
  • 다양한 버전의 브로커 로드 밸런서를 검토하려면 Broker load balancing | Types.
  • 빠르게 시작하려면 Broker load balancing | Quick start.
  • 한 로드 밸런서 유형을 다른 것으로 마이그레이션하려면 Broker load balancing | Migration.

더 알아보기 (Learn more)

  • 브로커 로드 밸런싱의 기능은 Features 문서를 참고해요.
  • 로드 밸런싱의 장점은 Benefits 문서를 참고해요.
  • 핵심 개념은 Concepts 문서를 참고해요.
  • 로드 밸런서 유형은 Types 문서를 참고해요.