2장. Kafka의 AMQ Streams 배포

Apache Kafka 구성 요소는 AMQ Streams 배포를 사용하여 OpenShift에 배포할 수 있도록 제공됩니다. Kafka 구성 요소는 일반적으로 가용성을 위해 클러스터로 실행됩니다.

Kafka 구성 요소를 통합하는 일반적인 배포에는 다음이 포함될 수 있습니다.

  • 브로커 노드의 Kafka 클러스터
  • 복제된 ZooKeeper 인스턴스의 zookeeper 클러스터
  • 외부 데이터 연결을 위한 Kafka Connect 클러스터
  • 보조 클러스터에서 Kafka 클러스터를 미러링할 Kafka MirrorMaker 클러스터
  • 모니터링을 위한 추가 Kafka 메트릭 데이터를 추출하기 위한 Kafka 내보내기
  • Kafka 클러스터에 대한 HTTP 기반 요청 생성

이러한 구성 요소가 모두 필수는 아니지만 Kafka 및 ZooKeeper가 최소한 필요합니다. 일부 구성 요소는 MirrorMaker 또는 Kafka Connect와 같은 Kafka 없이 배포할 수 있습니다.

2.1. Kafka 구성 요소 아키텍처

Kafka 브로커의 클러스터는 메시지 전달을 처리합니다.

브로커는 구성 데이터를 저장하고 클러스터 조정을 위해 Apache ZooKeeper를 사용합니다. Apache Kafka를 실행하기 전에 Apache ZooKeeper 클러스터가 준비되어 있어야 합니다.

각 다른 Kafka 구성 요소는 Kafka 클러스터와 상호 작용하여 특정 역할을 수행합니다.

Kafka 구성 요소 상호 작용

Data flows between several Kafka components and the Kafka cluster. See the component descriptions after this image.

Apache ZooKeeper
Apache ZooKeeper는 Kafka의 핵심 종속성으로, 클러스터 조정 서비스를 제공하고 브로커와 소비자의 상태를 저장하고 추적합니다. zookeeper는 컨트롤러 선택에도 사용됩니다.
Kafka Connect

Kafka Connect는 커넥터 플러그인을 사용하여 Kafka 브로커와 기타 시스템 간에 데이터를 스트리밍하기 위한 통합 툴킷입니다. Kafka Connect는 커넥터를 사용하여 데이터를 가져오거나 내보내기 위해 데이터베이스 등의 외부 데이터 소스 또는 대상과 Kafka를 통합하기 위한 프레임워크를 제공합니다. 커넥터는 필요한 연결 구성을 제공하는 플러그인입니다.

  • 소스 커넥터는 외부 데이터를 Kafka로 푸시합니다.
  • 싱크 커넥터가 Kafka에서 데이터를 추출

    외부 데이터가 변환되고 적절한 형식으로 변환됩니다.

    데이터 연결에 필요한 커넥터 플러그인으로 컨테이너 이미지를 자동으로 빌드하는 빌드 구성으로 Kafka Connect를 배포할 수 있습니다.

Kafka MirrorMaker

Kafka MirrorMaker는 데이터 센터 내부 또는 여러 Kafka 클러스터 간에 데이터를 복제합니다.

MirrorMaker는 소스 Kafka 클러스터에서 메시지를 가져와서 대상 Kafka 클러스터에 씁니다.

Kafka 브리지
Kafka 브리지는 HTTP 기반 클라이언트를 Kafka 클러스터와 통합하는 API를 제공합니다.
Kafka Exporter
Kafka Exporter는 분석을 위한 데이터를 Prometheus 지표, 주로 오프셋, 소비자 그룹, 소비자 지연 및 주제와 관련된 데이터를 추출합니다. 소비자 지연은 파티션에 기록된 마지막 메시지와 현재 소비자가 해당 파티션에서 선택 중인 메시지 간의 지연입니다.