브로커 로드 밸런싱 | 마이그레이션
브로커 로드 밸런싱 | 마이그레이션 (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 파일에서
loadManagerClassName을ModularLoadManagerImpl로 설정해 브로커 로드 밸런서를 바꿔요.loadManagerClassName=org.apache.pulsar.broker.loadbalance.extensions.ModularLoadManagerImpl -
Pulsar 클러스터를 재시작해요. 새 설정은 재시작 후 적용돼요.
pulsar-admin 도구 사용
-
pulsar-admin 도구에 접근해요.
cd apache-pulsar-5.0.0-M2/bin -
--config를loadManagerClassName으로,--value를org.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-config로loadManagerClassName을 바꾸지 마세요. 설정이 동적이지만, 그렇게 바꾸면 시작 시 초기화된 리더-선거·로드-보고 작업을 재구성하거나 두 매니저 간 번들 소유권을 마이그레이션하지 않고 매니저를 제자리에서 교체해요.broker.conf와 롤링 업그레이드를 사용하고, 마이그레이션 리다이렉션 활성화·비활성화에는 동적 API를 사용해요.
broker.conf 파일 변경
-
Pulsar 클러스터를 3.0.0 이상으로 업그레이드해요.
-
broker.conf 파일에 접근해요.
vim apache-pulsar-5.0.0-M2/conf/broker.conf -
broker.conf 파일에서 다음 설정을 바꿔요.
loadManagerClassName을ExtensibleLoadManagerImpl로 설정해 브로커 로드 밸런서를 업데이트해요.loadBalancerLoadSheddingStrategy를TransferShedder로 설정해 번들 언로드 전략을 업데이트해요.loadManagerClassName=org.apache.pulsar.broker.loadbalance.extensions.ExtensibleLoadManagerImpl loadBalancerLoadSheddingStrategy=org.apache.pulsar.broker.loadbalance.extensions.scheduler.TransferSheddernote
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-config로loadManagerClassName을 바꾸지 마세요. 설정이 동적이지만, 그렇게 바꾸면 시작 시 초기화된 리더-선거·로드-보고 작업을 재구성하거나 두 매니저 간 번들 소유권을 마이그레이션하지 않고 매니저를 제자리에서 교체해요.broker.conf와 롤링 업그레이드를 사용하고, 마이그레이션 리다이렉션 활성화·비활성화에는 동적 API를 사용해요.
broker.conf 파일 변경
-
broker.conf 파일에 접근해요.
vim apache-pulsar-5.0.0-M2/conf/broker.conf -
broker.conf 파일에서 다음 설정을 바꿔요.
loadManagerClassName을ModularLoadManagerImpl로 설정해 브로커 로드 밸런서를 업데이트해요.필요에 따라 번들 언로드 전략을 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.AvgSheddernote
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 로드 매니저의 소유권 백엔드(시스템 토픽 또는 메타데이터 스토어)를 선택하는 것은 별도의 마이그레이션이며, 같은 롤아웃에서 로드 매니저 유형 변경과 결합하지 마세요.
관련 토픽 (Related topics)
- 포괄적 이해와 핵심 통찰은 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 문서를 참고해요.