2장. Kamelets를 사용하여 Kafka에 연결
Apache Kafka 는 내결함성 실시간 데이터 피드를 생성하기 위한 오픈 소스 분산 게시-구독 메시징 시스템입니다. Kafka는 다수의 소비자(외부 연결)에 대한 데이터를 신속하게 저장하고 복제합니다.
Kafka는 스트리밍 이벤트를 처리하는 솔루션을 구축하는 데 도움이 될 수 있습니다. 이벤트 중심 아키텍처는 프로세스 이벤트를 캡처, 통신 및 지원하는 "백업"이 필요합니다. Kafka는 데이터 소스 및 이벤트를 애플리케이션에 연결하는 통신 백본 역할을 할 수 있습니다.
Kamelets를 사용하여 Kafka와 외부 리소스 간의 통신을 구성할 수 있습니다. Kamelets를 사용하면 코드를 작성하지 않고 Kafka 스트림 처리 프레임워크에서 한 끝점에서 다른 끝점으로 이동하는 방법을 구성할 수 있습니다. Kamelets는 매개변수 값을 지정하여 구성하는 경로 템플릿입니다.
예를 들어 Kafka는 데이터를 바이너리 형식으로 저장합니다. Kamelets를 사용하여 외부 연결로 전송 및 수신하기 위한 데이터를 직렬화 및 역직렬화할 수 있습니다. Kamelets를 사용하면 스키마의 유효성을 검사하고 데이터 추가, 필터링 또는 마스킹과 같은 데이터를 변경할 수 있습니다. Kamelets는 오류를 처리하고 처리할 수도 있습니다.
2.1. Kamelets를 사용하여 Kafka에 연결 개요 링크 복사링크가 클립보드에 복사되었습니다!
Apache Kafka 스트림 처리 프레임워크를 사용하는 경우 Kamelets를 사용하여 서비스와 애플리케이션을 Kafka 항목에 연결할 수 있습니다. Kamelet Catalog는 Kafka 항목에 연결하기 위해 다음과 같은 Kamelets를 제공합니다.
-
Kafka-sink- 데이터 프로듀서에서 Kafka 주제로 이벤트를 이동합니다. Kamelet Binding에서kafka-sinkKamelet을 싱크로 지정합니다. -
Kafka-source- Kafka 주제에서 데이터 소비자로 이벤트를 이동합니다. Kamelet Binding에서kafka-sourceKamelet을 소스로 지정합니다.
그림 2.1은 소스 및 싱크 Kamelets를 Kafka 항목에 연결하는 흐름을 보여줍니다.
그림 2.1: Kamelets 및 Kafka 주제를 사용한 데이터 흐름
다음은 Kamelets 및 Kamelet Bindings를 사용하여 애플리케이션 및 서비스를 Kafka 항목에 연결하는 기본 단계의 개요입니다.
Kafka를 설정합니다.
필요한 OpenShift Operator를 설치합니다.
- Apache Kafka용 OpenShift Streams는 Camel K operator, Camel K CLI 및 RHOAS(Red Hat OpenShift Application Services) CLI를 설치합니다.
- AMQ 스트림은 Camel K 및 AMQ 스트림 운영자와 Camel K CLI를 설치합니다.
- Kafka 인스턴스를 생성합니다. Kafka 인스턴스는 메시지 브로커로 작동합니다. 브로커에는 주제가 포함되어 있으며 스토리지와 메시지 전달을 오케스트레이션합니다.
- Kafka 주제를 생성합니다. 주제에서는 데이터 스토리지의 대상을 제공합니다.
- Kafka 인증 자격 증명을 가져옵니다.
- Kafka 항목에 연결할 서비스 또는 애플리케이션을 결정합니다.
- Kamelet Catalog를 보고 통합에 추가할 소스 및 싱크 구성 요소의 Kamelets를 찾습니다. 또한 사용하려는 각 Kamelet에 필요한 구성 매개변수를 확인합니다.
Kamelet 바인딩을 생성합니다.
-
kafka-sinkKamelet을 사용하여 데이터 소스(데이터를 생성하는 구성 요소)를 Kafka 항목에 연결하는 Kamelet Binding을 생성합니다. -
kafka-sourceKamelet을 데이터 싱크(데이터를 사용하는 구성 요소)에 연결하여 kafka 주제를 연결하는 Kamelet Binding을 생성합니다.
-
- 필요한 경우 Kamelet Binding 내에서 중간 단계로 하나 이상의 작업 Kamelets를 추가하여 Kafka 주제와 데이터 소스 또는 싱크 간에 전달되는 데이터를 조작합니다.
- 필요한 경우 Kamelet Binding 내에서 오류를 처리하는 방법을 정의합니다.
Kamelet Bindings를 프로젝트에 리소스로 적용합니다.
Camel K Operator는 각 Kamelet Binding에 대해 별도의 Camel K 통합을 생성합니다.