메타데이터 스토어 구성

메타데이터 스토어 구성 (Configure metadata store)

Pulsar 메타데이터 스토어는 Pulsar 클러스터의 모든 메타데이터, 구성, 조정을 유지해요. 토픽 메타데이터, 스키마, 브로커 로드 데이터 등이요. 이 페이지에서는 지원되는 메타데이터 스토어 서비스(Oxia, ZooKeeper, RocksDB, 로컬 메모리)와 각각의 구성 방법을 설명해요.

출처: 문서

본문

Pulsar 메타데이터 스토어는 Pulsar 클러스터의 모든 메타데이터, 구성, 조정을 유지해요. 토픽 메타데이터, 스키마, 브로커 로드 데이터 등이요.

각 Pulsar 인스턴스의 메타데이터 스토어는 다음 두 구성 요소를 포함해야 해요.

  • 로컬 메타데이터 스토어 앙상블(metadataStoreUrl): 클러스터별 구성과 조정을 저장해요. 예를 들어 어떤 브로커가 어떤 토픽을 담당하는지, 소유권 메타데이터, 브로커 로드 보고서, BookKeeper 레저 메타데이터 등이요.
  • 구성 스토어 쿼럼(configurationMetadataStoreUrl): 클러스터, 테넌트, 네임스페이스, 토픽 등 전역적으로 일관되어야 하는 엔티티의 구성을 저장해요.

note

standalone Pulsar 또는 단일 Pulsar 클러스터를 사용한다면 하나의 메타데이터 스토어(metadataStoreUrl으로)만 구성하면 되고, 그것이 구성 스토어 역할도 해요.

Pulsar는 다음 메타데이터 스토어 서비스를 지원해요.

  • Oxia (권장)
  • Apache ZooKeeper
  • RocksDB
  • 로컬 메모리

새 프로덕션 클러스터에는 Oxia가 권장 메타데이터 스토어예요. ZooKeeper는 완전히 지원되며, 기존 ZooKeeper 기반 클러스터는 다운타임 없이 Oxia로 실시간(live) 마이그레이션할 수 있어요.

note

RocksDB와 로컬 메모리는 standalone Pulsar 또는 단일 노드 Pulsar 클러스터에만 적용돼요.

Oxia를 메타데이터 스토어로 사용 (Use Oxia as metadata store)

Oxia는 새 Pulsar 클러스터의 권장 메타데이터 스토어예요. Oxia 클러스터를 배포하거나(또는 기존 것을 사용하거나) 배포 지침은 Oxia documentation을 참고해요.

Oxia는 데이터를 네임스페이스로 구성해요. 참조하는 네임스페이스는 이미 존재해야 해요 — Oxia 코디네이터 구성에 정의되며, 요청 시 생성되지 않아요. Pulsar 메타데이터 스토어와 BookKeeper에 별도의 네임스페이스를 사용해요. Pulsar Helm chart와 일관성을 유지하려면 이 가이드는 Pulsar에는 broker, BookKeeper에는 bookkeeper를 사용해요.

Oxia를 메타데이터 스토어로 사용하려면 conf/broker.conf(또는 conf/standalone.conf)에 다음을 추가해요. configurationMetadataStoreUrl은 선택사항이며 기본적으로 metadataStoreUrl로 설정되므로, 단일 클러스터는 다음만 필요해요.

metadataStoreUrl=oxia://oxia-1.example.com:6648/broker

URL 형식은 oxia://<host>:<port>/<namespace>예요.

BookKeeper는 다른 형식으로 연결해요. metadata-store: 접두사가 필요하고 자체 네임스페이스를 사용해야 해요. conf/broker.confbookkeeperMetadataServiceUriconf/bookkeeper.conf의 부키에 구성된 metadataServiceUri와 일치하도록 설정해요.

bookkeeperMetadataServiceUri=metadata-store:oxia://oxia-1.example.com:6648/bookkeeper

ZooKeeper에서 Oxia로 기존 클러스터를 실시간 마이그레이션하려면 Migrate metadata store를 참고해요.

ZooKeeper를 메타데이터 스토어로 사용 (Use ZooKeeper as metadata store)

ZooKeeper는 완전히 지원되며 Pulsar 바이너리 패키지와 함께 제공돼요. Pulsar 메타데이터 스토어는 별도의 ZooKeeper 클러스터에 배포하거나 기존 ZooKeeper 클러스터에 배포할 수 있어요.

ZooKeeper를 메타데이터 스토어로 사용하려면 conf/broker.conf 또는 conf/standalone.conf 파일에 다음 파라미터를 추가해요.

metadataStoreUrl=zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181
configurationMetadataStoreUrl=zk:my-global-zk-1:2181,my-global-zk-2:2181,my-global-zk-3:2181

RocksDB를 메타데이터 스토어로 사용 (Use RocksDB as metadata store)

RocksDB를 메타데이터 스토어로 사용하려면 conf/broker.conf 또는 conf/standalone.conf 파일에 다음 파라미터를 추가해요.

metadataStoreUrl=rocksdb://data/metadata
# metadataStoreConfigPath=/path/to/file

tip

metadataStoreConfigPath 파라미터는 고급 구성을 사용하려 할 때 필요해요. 자세한 내용은 this example을 참고해요.

로컬 메모리를 메타데이터 스토어로 사용 (Use local memory as metadata store)

로컬 메모리를 메타데이터 스토어로 사용하려면 conf/broker.conf 또는 conf/standalone.conf 파일에 다음 파라미터를 추가해요.

metadataStoreUrl=memory://local

메타데이터 스토어에서 배치 연산 활성화 (Enable batch operations on metadata store)

Pulsar 메타데이터 스토어는 낮은 지연과 높은 처리량을 만족하고 성능을 개선하기 위해 배치 연산과 캐싱을 지원해요.

메타데이터 스토어의 배치 연산을 활성화하려면 conf/broker.conf 또는 conf/standalone.conf 파일에서 다음 파라미터를 구성할 수 있어요.

# Whether we should enable metadata operations batching
metadataStoreBatchingEnabled=true

# Maximum delay to impose on batching grouping
metadataStoreBatchingMaxDelayMillis=5

# Maximum number of operations to include in a singular batch
metadataStoreBatchingMaxOperations=1000

# Maximum size of a batch
metadataStoreBatchingMaxSizeKb=128

더 알아보기 (Learn more)

  • ZooKeeper에서 Oxia로 메타데이터 스토어를 실시간 마이그레이션하는 방법은 Migrate metadata store 문서를 참고해요.
  • Oxia 배포 지침은 Oxia 문서를 참고해요.
  • 메타데이터 스토어의 개념은 핵심 개념 문서를 참고해요.