Pulsar 격리
Pulsar 격리 (Pulsar isolation)
조직에서 Pulsar 인스턴스는 여러 팀에 서비스를 제공해요. 여러 팀에 걸쳐 리소스를 정리할 때, 서로 다른 팀과 애플리케이션 간의 리소스 경쟁을 피하고 고품질의 메시징 서비스를 제공하려면 적절한 격리 계획을 세우고 싶을 거예요. 이 경우 리소스 격리를 고려하고 의도한 행동의 예상·예상치 못한 결과를 저울질해야 해요.
출처: 문서
본문
조직에서 Pulsar 인스턴스는 여러 팀에 서비스를 제공해요. 여러 팀에 걸쳐 리소스를 정리할 때 리소스 경쟁을 피하고 고품질의 메시징 서비스를 제공하려면 적절한 격리 계획을 세워야 해요. 이 경우 리소스 격리를 고려하고 의도한 행동의 예상·예상치 못한 결과를 저울질해야 해요.
Pulsar의 다중 계층·세그먼트 중심 아키텍처와 계층적 리소스 관리는 격리를 위한 견고한 기반을 제공해요. 이를 통해 원하는 방식으로 리소스를 격리하고, 리소스 경쟁을 막고, 안정성을 얻을 수 있어요.
격리 수준 (Isolation levels)
Pulsar는 다음 두 수준 중 하나 또는 둘 모두에서 격리를 지원해요.
- 브로커 수준 격리: 브로커를 서로 다른 그룹으로 나누고 브로커 그룹을 서로 다른 네임스페이스에 할당해요. 이렇게 하면 네임스페이스의 토픽을 특정 그룹에 속한 브로커 집합에 바인딩할 수 있어요.
- 부키 수준 격리: 부키를 서로 다른 랙/지역으로 나누고, 재해 내성을 위해 지정된 데이터 배치 정책에 따라 데이터 복제본을 부키에 할당해요.
tip
브로커 수준 격리와 부키 수준 격리 위에서, 네임스페이스에 속한 모든 데이터가 원하는 부키에 저장되도록 보장하려면 부키 어피니티 그룹(bookie affinity groups)을 정의·구성할 수 있어요. 자세한 내용은 shared BookKeeper cluster deployment를 참고해요.
Pulsar 내에서 격리를 달성하는 배포 (Deployments to achieve isolation within Pulsar)
별도 Pulsar 클러스터 (Separate Pulsar clusters)
다음 그림은 최고 수준 격리를 달성하는 별도 Pulsar 클러스터 배포를 보여줘요.

동작 방식을 이해하기 위한 핵심 사항은 다음과 같아요.
- 별도 Pulsar 클러스터는 공유 구성 스토어를 사용해요.
- 각 클러스터는 DNS 진입점으로 서비스를 노출하고 클라이언트가 DNS 진입점으로 클러스터에 접근할 수 있게 해요. 클라이언트는 Pulsar 클러스터가 서비스 URL로 노출하는 하나 이상의 Pulsar URL을 사용할 수 있어요.
- 각 Pulsar 클러스터에는 하나 이상의 브로커와 부키가 있어요.
- 각 Pulsar 클러스터에는 하나의 메타데이터 스토어가 있으며, Pulsar 메타데이터 스토어와 BookKeeper 메타데이터 스토어로 나눌 수 있어요.
note
이 접근 방식을 쓸 때 네임스페이스 격리를 달성하려면 네임스페이스에 클러스터를 지정해야 해요. 클러스터는 tenant의 허용 클러스터 목록에 있어야 해요. 네임스페이스 아래 토픽은 그 클러스터에 할당돼요.
공유 BookKeeper 클러스터 (Shared BookKeeper cluster)
다음 그림은 격리를 달성하는 공유 BookKeeper 클러스터 배포를 보여줘요.

동작 방식을 이해하기 위한 핵심 사항은 다음과 같아요.
- 별도 Pulsar 클러스터가 BookKeeper 클러스터와 구성 스토어를 공유해요.
- 각 클러스터는 DNS 진입점으로 서비스를 노출하고 클라이언트가 DNS 진입점으로 클러스터에 접근할 수 있게 해요. 클라이언트는 Pulsar 클러스터가 서비스 URL로 노출하는 하나 이상의 Pulsar URL을 사용할 수 있어요.
- 각 Pulsar 클러스터에는 하나 이상의 브로커가 있어요.
- 각 Pulsar 클러스터에는 하나의 메타데이터 스토어가 있어요.
아래 그림처럼 모든 부키 그룹은 공유 BookKeeper 클러스터와 메타데이터 스토어를 사용하고, 각 부키 어피니티 그룹에는 하나 이상의 부키가 있어요. 네임스페이스에 하나 이상의 primary/secondary 그룹을 지정할 수 있어요. 네임스페이스 아래 토픽은 먼저 primary 그룹의 부키에 생성되고 그다음 secondary 그룹의 부키에 생성돼요.

단일 Pulsar 클러스터 (Single Pulsar cluster)
다음 그림은 단일 Pulsar 클러스터 내부에서 격리를 달성하는 방법을 보여줘요.

동작 방식을 이해하기 위한 핵심 사항은 다음과 같아요.
- 각 클러스터는 DNS 진입점으로 서비스를 노출하고 클라이언트가 DNS 진입점으로 클러스터에 접근할 수 있게 해요. 클라이언트는 Pulsar 클러스터가 서비스 URL로 노출하는 하나 이상의 Pulsar URL을 사용할 수 있어요.
- 브로커 격리는 네임스페이스 격리 정책을 설정해 달성해요.
더 알아보기 (Learn more)
- 브로커 수준 격리 정책 방법은 Isolate brokers 문서를 참고해요.
- 부키 수준 격리 방법은 Isolate bookies 문서를 참고해요.
- 공유 BookKeeper 클러스터 배포에서 부키 어피니티 그룹 정의는 shared BookKeeper cluster deployment 문서를 참고해요.
- 네임스페이스와 번들의 개념은 핵심 개념 문서를 참고해요.