10.3. 주제에 대한 변경 사항 처리


Topic Operator에서 주제의 변경 사항을 처리하는 방법은 주제 관리 모드에 따라 다릅니다.

  • 비방향 주제 관리의 경우 구성 변경은 KafkaTopic 리소스에서 Kafka 주제로 한 방향으로만 이동합니다. KafkaTopic 리소스 외부에서 관리되는 Kafka 주제의 모든 변경 사항이 취소됩니다.
  • 양방향 주제 관리의 경우 구성 변경 사항은 Kafka 주제와 KafkaTopic 리소스 간에 동기화됩니다. 호환되지 않는 변경 사항은 Kafka 구성에 우선하며 KafkaTopic 리소스는 그에 따라 조정됩니다.

10.3.1. 양방향 주제 관리를 위한 주제 저장소

양방향 주제 관리의 경우 Topic Operator는 단일 정보 소스가 없는 경우 주제 변경 사항을 처리할 수 있습니다. KafkaTopic 리소스 및 Kafka 주제는 특히 Topic Operator가 작동하지 않는 경우 변경 사항에 대한 실시간 관찰이 항상 가능한 것은 아닙니다. 이를 처리하기 위해 Topic Operator는 각 주제에 대한 주제 구성 정보를 저장하는 주제 저장소를 유지 관리합니다. Kafka 클러스터 및 OpenShift의 상태를 주제 저장소와 비교하여 동기화에 필요한 변경 사항을 결정합니다. 이 평가는 시작 중에 그리고 정기적으로 Topic Operator가 활성화되어 있는 동안 수행됩니다.

예를 들어 Topic Operator가 비활성화되고 my-topic 이라는 새 KafkaTopic 이 생성되면 Topic Operator는 주제 저장소에 my-topic 이 없음을 인식합니다. KafkaTopic 은 마지막 작업 후에 생성된 것을 인식합니다. 결과적으로 Topic Operator는 해당 Kafka 주제를 생성하고 주제 저장소에 메타데이터를 저장합니다.

주제 저장소를 사용하면 Topic Operator에서 변경 사항이 호환되는 경우 Kafka 주제 및 KafkaTopic 리소스에서 주제 구성이 변경되는 상황을 관리할 수 있습니다. Kafka 주제 구성이 업데이트되거나 KafkaTopic 사용자 정의 리소스가 변경되면 변경 사항이 호환되는 경우 Kafka 클러스터와 조정한 후 주제 저장소가 업데이트됩니다.

주제 저장소 는 Kafka 주제를 사용하여 상태를 유지하는 Kafka Streams 키-값 메커니즘을 기반으로 합니다. 주제 메타데이터는 메모리 내 캐시되고 Topic Operator 내에서 로컬에 액세스합니다. 로컬 메모리 내 캐시에 적용된 작업에서 업데이트는 디스크의 백업 주제 저장소에 유지됩니다. 주제 저장소는 Kafka 주제 또는 OpenShift KafkaTopic 사용자 정의 리소스의 업데이트와 지속적으로 동기화됩니다. 주제 저장소가 이러한 방식으로 설정된 상태에서 신속하게 처리되지만 메모리 내 캐시가 충돌하면 영구 스토리지에서 자동으로 다시 채워집니다.

내부 주제는 주제 저장소의 주제 메타데이터 처리를 지원합니다.

__strimzi_store_topic
주제 메타데이터 저장을 위한 입력 주제
__strimzi-topic-operator-kstreams-topic-store-changelog
컴팩트한 주제 저장소 값의 로그 유지
주의

Topic Operator 실행에 필수이므로 이러한 주제를 삭제하지 마십시오.

10.3.2. Zoo Cryostat에서 주제 저장소로 주제 메타데이터 마이그레이션

이전 버전의 Apache Kafka에서는 주제 메타데이터가 Zoo Cryostat에 저장되었습니다. 주제 저장소는 이 요구 사항을 제거하여 Kafka 클러스터에 메타데이터를 가져오고 Topic Operator를 제어합니다.

Apache Kafka 2.7용 Streams로 업그레이드할 때 주제 저장소의 Topic Operator 제어로 전환이 원활합니다. 메타 데이터가 Zoo Cryostat에서 찾아 마이그레이션되고 이전 저장소가 삭제됩니다.

주제 메타데이터 스토리지에 Zoo Cryostat를 사용하는 1.7 이전의 Streams 버전으로 되돌리는 경우 Cluster Operator를 이전 버전으로 다운그레이드한 다음 Kafka 브로커 및 클라이언트 애플리케이션을 표준으로 다운그레이드합니다.

그러나 Kafka 클러스터의 부트스트랩 주소를 지정하여 kafka-topics 명령을 사용하여 주제 저장소에 대해 생성된 주제를 삭제해야 합니다. 예를 들면 다음과 같습니다.

oc run kafka-admin -ti --image=registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0 --rm=true --restart=Never -- ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi-topic-operator-kstreams-topic-store-changelog --delete && ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi_store_topic --delete
Copy to Clipboard Toggle word wrap

명령은 Kafka 클러스터에 액세스하는 데 사용되는 리스너 및 인증 유형에 해당해야 합니다.

Topic Operator는 Kafka의 주제 상태에서 Zoo Cryostat 주제 메타데이터를 재구성합니다.

10.3.4. 주제 자동 생성

애플리케이션은 Kafka 클러스터에서 주제 자동 생성을 트리거할 수 있습니다. 기본적으로 Kafka 브로커 구성 auto.create.topics.enabletrue 로 설정되어 브로커가 애플리케이션이 존재하지 않는 주제를 생성하거나 사용하려고 할 때 자동으로 주제를 생성할 수 있습니다. 애플리케이션에서는 Kafka AdminClient 를 사용하여 자동으로 주제를 생성할 수도 있습니다. 애플리케이션이 KafkaTopic 리소스와 함께 배포되면 Topic Operator가 KafkaTopic 에 반응하기 전에 클러스터에서 자동 주제 생성이 발생할 수 있습니다.

양방향 주제 관리를 위해 Topic Operator는 주제와 KafkaTopic 리소스 간의 변경 사항을 동기화합니다.

단방향 주제 관리를 사용하는 경우 애플리케이션 배포를 위해 생성된 주제가 처음에 기본 주제 구성으로 생성됨을 의미합니다. Topic Operator가 애플리케이션 배포에 포함된 KafkaTopic 리소스 사양에 따라 주제를 재구성하려고 하면 구성에 필요한 변경이 허용되지 않기 때문에 작업이 실패할 수 있습니다. 예를 들어 변경 시 주제 파티션 수를 줄이는 경우입니다. 따라서 리디렉션되지 않은 주제 관리를 사용할 때 Kafka 클러스터 구성에서 auto.create.topics.enable 을 비활성화하는 것이 좋습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat