2장. Kafka의 AMQ Streams 배포
Apache Kafka 구성 요소는 AMQ Streams 배포를 사용하여 OpenShift에 배포할 수 있도록 제공됩니다. Kafka 구성 요소는 일반적으로 가용성을 위해 클러스터로 실행됩니다.
Kafka 구성 요소를 통합하는 일반적인 배포에는 다음이 포함될 수 있습니다.
- 브로커 노드의 Kafka 클러스터
- 복제된 Zoo Cryostat 인스턴스의 Zookeeper 클러스터
- 외부 데이터 연결을 위한 Kafka Connect 클러스터
- 보조 클러스터에서 Kafka 클러스터를 미러링하는 Kafka 미러 메이커 클러스터
- 모니터링을 위한 추가 Kafka 메트릭 데이터를 추출하는 Kafka Exporter
- Kafka 클러스터에 HTTP 기반 요청을 만드는 Kafka 브리지
- cruise Control 을 통해 브로커 노드 간에 주제 파티션을 재조정
이러한 구성 요소는 모두 필수는 아니지만 Kafka 및 Zoo Cryostat가 필요합니다. 일부 구성 요소는 MirrorMaker 또는 Kafka Connect와 같은 Kafka 없이 배포할 수 있습니다.
2.1. Kafka 구성 요소 아키텍처 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터는 메시지 전송을 담당하는 브로커로 구성됩니다.
Zookeeper는 클러스터 관리에 사용됩니다. KRaft (Kafka Raft metadata) 모드에서 Kafka를 배포할 때 Kafka 노드 내에 브로커 및 컨트롤러 역할을 통합하여 클러스터 관리가 간소화되어 Zoo Cryostat의 필요성이 제거됩니다. Kafka 노드는 브로커, 컨트롤러 또는 둘 다의 역할을 수행합니다. 역할은 노드 풀을 사용하여 AMQ Streams에 구성됩니다.
다른 각 Kafka 구성 요소는 Kafka 클러스터와 상호 작용하여 특정 역할을 수행합니다.
Kafka 구성 요소 상호 작용
- Apache Zoo Cryostat
- Apache Zoo Cryostat는 브로커 및 소비자의 상태를 저장 및 추적하는 클러스터 조정 서비스를 제공합니다. Zookeeper는 컨트롤러 선택에도 사용됩니다. Zoo Cryostat를 사용하는 경우 Kafka를 실행하기 전에 Zoo Cryostat 클러스터를 준비해야 합니다. KRaft 모드에서는 조정이 컨트롤러로 작동하는 Kafka 노드에 의해 Kafka 클러스터에서 관리되므로 Zoo Cryostat가 필요하지 않습니다.
- Kafka Connect
Kafka Connect는 Kafka 브로커와 커넥터 플러그인을 사용하여 기타 시스템 간에 데이터를 스트리밍하기 위한 통합 툴킷입니다. Kafka Connect는 커넥터를 사용하여 데이터를 가져오거나 내보내기 위해 데이터베이스와 같은 외부 데이터 소스 또는 대상을 통합하기 위한 프레임워크를 제공합니다. Connectors는 필요한 연결 구성을 제공하는 플러그인입니다.
- 소스 커넥터는 외부 데이터를 Kafka로 푸시합니다.
싱크 커넥터는 Kafka에서 데이터를 추출
외부 데이터가 변환되고 적절한 형식으로 변환됩니다.
데이터 연결에 필요한 커넥터 플러그인으로 컨테이너 이미지를 자동으로 빌드하는 빌드 구성으로 Kafka Connect를 배포할 수 있습니다.
- Kafka MirrorMaker
Kafka MirrorMaker는 데이터 센터 내 또는 여러 Kafka 클러스터 간에 데이터를 복제합니다.
MirrorMaker는 소스 Kafka 클러스터에서 메시지를 가져와 대상 Kafka 클러스터에 씁니다.
- Kafka Bridge
- Kafka 브리지는 HTTP 기반 클라이언트를 Kafka 클러스터와 통합하는 API를 제공합니다.
- Kafka Exporter
- Kafka Exporter는 분석을 위한 데이터를 Prometheus 지표로 추출하고 주로 오프셋, 소비자 그룹, 소비자 지연 및 주제와 관련된 데이터를 추출합니다. 소비자 지연은 파티션에 기록된 마지막 메시지와 현재 소비자가 해당 파티션에서 선택 중인 메시지 사이의 지연입니다.