2.4. Kamelet 바인딩의 데이터 싱크에 Kafka 주제 연결
Kafka 주제를 데이터 싱크에 연결하려면 figure 2.3에 설명된 대로 Kamelet Binding을 생성합니다.
그림 2.3 데이터 싱크에 Kafka 주제 연결
사전 요구 사항
-
이벤트를 보낼 Kafka 주제의 이름을 알고 있습니다. 이 절차의 예제에서는 이벤트를 보내는 데
test-topic을 사용합니다. 데이터 소스와 카메릿 바인딩의 Kafka 항목에 데이터 소스 연결의 이벤트를 수신하는 데 사용한 것과 동일한 주제입니다. Kafka 인스턴스에 대한 다음 매개변수의 값을 알고 있습니다.
- bootstrapServers - Kafka Broker URL의 쉼표로 구분된 목록입니다.
- password - Kafka에 인증할 암호입니다.
user - Kafka에 인증할 사용자 이름입니다.
OpenShift Streams를 사용할 때 이러한 값을 가져오는 방법에 대한 자세한 내용은 Kafka 인증 정보 가져오기를 참조하십시오.
-
Kafka 브로커와 통신하기 위한 보안 프로토콜을 알고 있습니다. OpenShift Streams의 Kafka 클러스터의 경우
SASL_SSL(기본값)입니다. AMQ 스트림의 Kafka 클러스터의 경우PLAINTEXT입니다. Camel K 통합과 필수 인스턴스 매개 변수에 추가할 Kamelets를 알고 있습니다. 이 절차의 예제 Kamelets는 Kamelet Catalog에서 제공됩니다.
kafka-sourceKamelet - Kafka 주제가 이 바인딩에서 데이터(데이터 프로듀서임)를 보내는 것이므로kafka-sourceKamelet을 사용합니다. 필수 매개변수의 예제 값은 다음과 같습니다.-
bootstrapServers -
"broker.url:9092" -
password -
"testpassword" -
user -
"testuser" -
topic -
"test-topic" -
securityProtocol - OpenShift Streams의 Kafka 클러스터의 경우
SASL_SSL이 기본값이기 때문에 이 매개변수를 설정할 필요가 없습니다. AMQ 스트림의 Kafka 클러스터의 경우 이 매개변수 값은"PLAINTEXT"입니다.
-
bootstrapServers -
-
log-sinkKamelet -log-sink를 사용하여kafka-sourceKamelet에서 수신하는 데이터를 기록합니다. 선택적으로showStreams매개변수를 지정하여 데이터의 메시지 본문을 표시합니다.log-sinkKamelet은 디버깅 목적에 유용합니다.
절차
Kafka 주제를 데이터 싱크에 연결하려면 Kamelet Binding을 생성합니다.
선택한 편집기에서 다음 기본 구조를 사용하여 YAML 파일을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding의 이름을 추가합니다. 이 예에서 바인딩이
kafka-sourceKamelet을log-sinkKamelet에 연결하므로 이름은kafka-to-log입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding의 소스의 경우
kafka-sourceKamelet을 지정하고 해당 매개변수를 구성합니다.예를 들어 Kafka 클러스터가 OpenShift Streams에 있는 경우
securityProtocol매개변수를 설정할 필요가 없습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 Kafka 클러스터가 AMQ Streams에 있는 경우
securityProtocol매개변수를"PLAINTEXT"로 설정해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding의 싱크의 경우 데이터 소비자 Kamelet(예:
log-sinkKamelet)을 지정하고 Kamelet에 대한 매개변수를 구성합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
YAML 파일 (예:
kafka-to-log.yaml)을 저장합니다. - OpenShift 프로젝트에 로그인합니다.
Kamelet Binding을 OpenShift 네임스페이스에 리소스로 추가합니다.
oc apply -f <kamelet binding filename>예를 들면 다음과 같습니다.
oc apply -f kafka-to-log.yamlCamel K Operator는
KameletBinding리소스를 사용하여 Camel K 통합을 생성하고 실행합니다. 빌드하는 데 몇 분 정도 걸릴 수 있습니다.KameletBinding리소스의 상태를 보려면 다음을 수행합니다.oc get kameletbindings통합 상태를 보려면 다음을 수행합니다.
oc get integrations통합 로그를 보려면 다음을 수행합니다.
Kamel logs <integration> -n <project>예를 들면 다음과 같습니다.
kamel logs kafka-to-log -n my-camel-k-kafka출력에는 coffee 이벤트가 표시되어야 합니다. 예를 들면 다음과 같습니다.
INFO [log-sink-E80C5C904418150-0000000000000001] (Camel (camel-1) thread #0 - timer://tick) {"id":7259,"uid":"a4ecb7c2-05b8-4a49-b0d2-d1e8db5bc5e2","blend_name":"Postmodern Symphony","origin":"Huila, Colombia","variety":"Kona","notes":"delicate, chewy, black currant, red apple, star fruit","intensifier":"balanced"}INFO [log-sink-E80C5C904418150-0000000000000001] (Camel (camel-1) thread #0 - timer://tick) {"id":7259,"uid":"a4ecb7c2-05b8-4a49-b0d2-d1e8db5bc5e2","blend_name":"Postmodern Symphony","origin":"Huila, Colombia","variety":"Kona","notes":"delicate, chewy, black currant, red apple, star fruit","intensifier":"balanced"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 실행 중인 통합을 중지하려면 연결된 Kamelet Binding 리소스를 삭제합니다.
oc delete kameletbindings/<kameletbinding-name>예를 들면 다음과 같습니다.
oc delete kameletbindings/kafka-to-log