브로커 로드 밸런싱 | 마이그레이션

브로커 로드 밸런싱 | 마이그레이션 (Broker load balancing | Migration)

Pulsar에는 세 가지 유형의 브로커 로드 밸런서가 있어요. 즉, simple(단순), modular(모듈식), extensible(확장 가능)이에요. 이 페이지에서는 한 로드 밸런서 유형에서 다른 유형으로 마이그레이션하는 방법, 특히 원하는 번들 언로드 전략에 따른 선택과 롤링 마이그레이션 절차를 설명해요.

출처: 문서

본문

Pulsar에는 세 가지 유형의 브로커 로드 밸런서가 있어요. 즉, simple(단순), modular(모듈식), extensible(확장 가능)이에요.

다음 마이그레이션을 수행할 수 있어요.

Migration When to use
Simple에서 Modular로 AvgShedder, OverloadShedder, ThresholdShedder, 또는 UniformLoadShedder 번들 언로드 전략을 사용하려 할 때
Modular에서 Extensible로 TransferShedder 번들 언로드 전략을 사용하려 할 때
Extensible에서 Modular로 AvgShedder, OverloadShedder, ThresholdShedder, 또는 UniformLoadShedder 번들 언로드 전략을 사용하려 할 때

note

simple 브로커 로드 밸런서는 비권장(deprecated)이고 더 이상 사용되지 않으므로 modular나 extensible에서 simple로 마이그레이션하는 것은 권장하지 않아요.

고려 사항 (Considerations)

한 브로커 로드 밸런서 유형에서 다른 유형으로 마이그레이션하기 전에 브로커 로드 밸런서 유형, Pulsar 버전, 번들 언로드 전략 간의 관계를 검토해요. Pulsar 버전을 업그레이드하거나 번들 언로드 전략을 업데이트해야 할 수도 있어요. 아래에 간단한 요약이 있어요.

This broker load balancer type is available in this Pulsar version
Simple All versions
Modular 1.7 and later
Extensible 3.0 and later
This bundle unloading strategy is available for this broker load balancer type in available this Pulsar version
OverloadShedder Modular 1.18 and later
ThresholdShedder Modular 2.6 and later
UniformLoadShedder Modular 2.10 and later
AvgShedder Modular 3.0.6, 3.2.4, 3.3.1 and later (default since 5.0)
TransferShedder Extensible 3.0 and later

Simple에서 Modular 브로커 로드 밸런서로 마이그레이션 (Migrate from simple to modular broker load balancer)

broker.conf 파일에서 구성 설정을 수동으로 바꾸거나 pulsar-admin 도구를 사용해 simple에서 modular 브로커 로드 밸런서로 마이그레이션할 수 있어요.

broker.conf 파일 변경

  • broker.conf 파일에 접근해요.

    vim apache-pulsar-5.0.0-M2/conf/broker.conf
    
  • broker.conf 파일에서 loadManagerClassNameModularLoadManagerImpl로 설정해 브로커 로드 밸런서를 바꿔요.

    loadManagerClassName=org.apache.pulsar.broker.loadbalance.extensions.ModularLoadManagerImpl
    
  • Pulsar 클러스터를 재시작해요. 새 설정은 재시작 후 적용돼요.

pulsar-admin 도구 사용

  • pulsar-admin 도구에 접근해요.

    cd apache-pulsar-5.0.0-M2/bin
    
  • --configloadManagerClassName으로, --valueorg.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl로 설정해요.

    pulsar-admin brokers update-dynamic-config \
    --config loadManagerClassName \
    --value org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl
    

Pulsar 클러스터를 재시작할 필요는 없어요. 새 설정은 1~2분 후 적용돼요.

Modular에서 Extensible 브로커 로드 밸런서로 마이그레이션 (Migrate from modular to extensible broker load balancer)

broker.conf 파일에서 설정을 수동으로 바꿔 modular에서 extensible 브로커 로드 밸런서로 마이그레이션할 수 있어요. 마이그레이션 중에는 룩업과 할당이 extensible 로드 밸런서가 있는 브로커로 리다이렉트돼요.

Pulsar 5.0 이상에서 롤링 마이그레이션을 하려면 먼저 기존 브로커에서 lookup redirection을 활성화해요. 그 플래그 없이 새 로드 매니저를 도입하면 두 유형이 룩업을 독립적으로 처리하게 돼요.

note

이 마이그레이션에서는 pulsar-admin brokers update-dynamic-configloadManagerClassName을 바꾸지 마세요. 설정이 동적이지만, 그렇게 바꾸면 시작 시 초기화된 리더-선거·로드-보고 작업을 재구성하거나 두 매니저 간 번들 소유권을 마이그레이션하지 않고 매니저를 제자리에서 교체해요. broker.conf와 롤링 업그레이드를 사용하고, 마이그레이션 리다이렉션 활성화·비활성화에는 동적 API를 사용해요.

broker.conf 파일 변경

  • Pulsar 클러스터를 3.0.0 이상으로 업그레이드해요.

  • broker.conf 파일에 접근해요.

    vim apache-pulsar-5.0.0-M2/conf/broker.conf
    
  • broker.conf 파일에서 다음 설정을 바꿔요.

    loadManagerClassNameExtensibleLoadManagerImpl로 설정해 브로커 로드 밸런서를 업데이트해요.

    loadBalancerLoadSheddingStrategyTransferShedder로 설정해 번들 언로드 전략을 업데이트해요.

    loadManagerClassName=org.apache.pulsar.broker.loadbalance.extensions.ExtensibleLoadManagerImpl
    loadBalancerLoadSheddingStrategy=org.apache.pulsar.broker.loadbalance.extensions.scheduler.TransferShedder
    

    note

    extensible 브로커 로드 밸런서는 Pulsar 3.0.0 이상에서 사용할 수 있어요. TransferShedder 언로드 전략은 extensible 로드 밸런서에서만 사용할 수 있어요.

  • Pulsar 클러스터를 재시작해요. 새 설정은 재시작 후 적용돼요.

Extensible에서 Modular 브로커 로드 밸런서로 마이그레이션 (Migrate from extensible to modular broker load balancer)

broker.conf 파일에서 설정을 수동으로 바꿔 extensible에서 modular 브로커 로드 밸런서로 마이그레이션할 수 있어요. 마이그레이션 중에는 룩업과 할당이 modular 로드 밸런서가 있는 브로커로 리다이렉트돼요.

Pulsar 5.0 이상에서 롤링 마이그레이션을 하려면 먼저 기존 브로커에서 lookup redirection을 활성화해요. 마이그레이션을 롤백할 때도 마찬가지예요.

note

이 마이그레이션에서는 pulsar-admin brokers update-dynamic-configloadManagerClassName을 바꾸지 마세요. 설정이 동적이지만, 그렇게 바꾸면 시작 시 초기화된 리더-선거·로드-보고 작업을 재구성하거나 두 매니저 간 번들 소유권을 마이그레이션하지 않고 매니저를 제자리에서 교체해요. broker.conf와 롤링 업그레이드를 사용하고, 마이그레이션 리다이렉션 활성화·비활성화에는 동적 API를 사용해요.

broker.conf 파일 변경

  • broker.conf 파일에 접근해요.

    vim apache-pulsar-5.0.0-M2/conf/broker.conf
    
  • broker.conf 파일에서 다음 설정을 바꿔요.

    loadManagerClassNameModularLoadManagerImpl로 설정해 브로커 로드 밸런서를 업데이트해요.

    필요에 따라 번들 언로드 전략을 AvgShedder(Pulsar 5.0.0부터 modular 로드 밸런서의 기본; 5.0.0-M1/M2 마일스톤은 여전히 ThresholdShedder를 기본으로 함), OverloadShedder, ThresholdShedder, 또는 UniformLoadShedder로 업데이트해요.

    loadManagerClassName=org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl
    loadBalancerLoadSheddingStrategy=org.apache.pulsar.broker.loadbalance.impl.AvgShedder
    loadBalancerLoadPlacementStrategy=org.apache.pulsar.broker.loadbalance.impl.AvgShedder
    

    note

    TransferShedder는 extensible 브로커 로드 밸런서에서만 지원되므로 TransferShedder를 다른 번들 언로드 전략으로 바꿔야 해요.

  • Pulsar 클러스터를 재시작해요. 새 설정은 재시작 후 적용돼요.

롤링 마이그레이션 중 룩업 리다이렉션 활성화 (Enable lookup redirection during a rolling migration)

Pulsar 5.0 이상은 기본적으로 마이그레이션 리다이렉션을 비활성화해요(loadManagerMigrationEnabled=false). 다른 로드 매니저를 가진 브로커를 처음 시작하기 전에 기존 클러스터에서 동적으로 활성화해요.

pulsar-admin brokers update-dynamic-config --config loadManagerMigrationEnabled --value true

새 유형을 도입하기 전에 설정이 전파되기를 기다려요. 이 플래그는 룩업 리다이렉션을 활성화해요. loadManagerClassName과 그 연관 전략 설정은 위에서 설명한 대로 브로커 구성에서 바꾸고 브로커를 재시작해요. 이 마이그레이션에서는 동적 구성 API로 로드 매니저 유형을 바꾸지 마세요.

두 로드 매니저 유형이 실행되는 동안, 가장 최근에 시작된 브로커가 룩업이 리다이렉트될 로드 매니저 유형을 결정하고, 각 유형은 자기 유형의 브로커에만 번들을 할당해요. modular와 extensible 소유권 스토어는 별도로 유지돼요. 새 풀에 새 할당을 위한 충분한 용량을 계획하고 마이그레이션 중 추가 소유권 변경을 예상해요. Rolling upgrade of brokers를 따라 자동 리밸런싱을 일시 중지하고, 번들 이동을 제어하고, 진행 전에 각 교체본을 확인해요.

모든 브로커가 의도한 로드 매니저를 사용한 후 마이그레이션 리다이렉션을 비활성화해요.

pulsar-admin brokers update-dynamic-config --config loadManagerMigrationEnabled --value false

Pulsar 4.x는 이 플래그 없이 이 리다이렉션을 수행해요. extensible 로드 매니저의 소유권 백엔드(시스템 토픽 또는 메타데이터 스토어)를 선택하는 것은 별도의 마이그레이션이며, 같은 롤아웃에서 로드 매니저 유형 변경과 결합하지 마세요.

  • 포괄적 이해와 핵심 통찰은 Broker load balancing | Overview.
  • 다양한 사용 시나리오는 Broker load balancing | Use cases.
  • 기능 탐구는 Broker load balancing | Features.
  • 장점 이해는 Broker load balancing | Benefits.
  • 핵심 기초 학습은 Broker load balancing | Concepts.
  • 다양한 로드 밸런서 버전 검토는 Broker load balancing | Types.

더 알아보기 (Learn more)

  • 로드 밸런싱 개요와 개념은 Overview·Concepts 문서를 참고해요.
  • 로드 밸런서 유형별 특징은 Types 문서를 참고해요.
  • 원하는 번들 언로드 전략은 Broker load balancing | Concepts 문서를 참고해요.
  • 롤링 업그레이드 중 로드 매니저 전환은 Rolling upgrade of brokers 문서를 참고해요.