10.8.4. 커넥터 오프셋 나열
KafkaConnector 리소스를 사용하여 커넥터 오프셋을 추적하려면 listOffsets 구성을 추가합니다. 데이터 흐름을 추적하는 오프셋은 구성에 지정된 구성 맵에 기록됩니다. 구성 맵이 없는 경우 Apache Kafka용 Streams에서 해당 맵을 생성합니다.
구성이 배치되면 KafkaConnector 리소스에 주석을 추가하여 구성 맵에 목록을 작성합니다.
싱크 커넥터는 Kafka의 표준 소비자 오프셋 메커니즘을 사용하지만 소스 커넥터 저장소는 Kafka 주제 내의 사용자 지정 형식으로 오프셋됩니다.
- 싱크 커넥터의 경우 목록에 Kafka 주제 파티션과 각 파티션에 대해 마지막으로 커밋된 오프셋이 표시됩니다.
- 소스 커넥터의 경우 목록에는 소스 시스템의 파티션과 마지막으로 처리된 오프셋이 표시됩니다.
사전 요구 사항
- Cluster Operator가 실행 중입니다.
프로세스
listOffsets구성을 포함하도록 커넥터의KafkaConnector리소스를 편집합니다.오프셋을 나열할 구성의 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaConnector metadata: name: my-source-connector labels: strimzi.io/cluster: my-connect-cluster spec: listOffsets: toConfigMap:1 name: my-connector-offsets2 # ...명령을 실행하여
KafkaConnector리소스에 주석을 달아 구성 맵에 목록을 작성합니다.oc annotate kafkaconnector my-source-connector strimzi.io/connector-offsets=list -n <namespace>주석은 목록 작업이 성공하거나 리소스에서 수동으로 제거될 때까지 유지됩니다.
KafkaConnector리소스가 업데이트된 후 다음 명령을 사용하여 오프셋이 있는 구성 맵이 생성되었는지 확인합니다.oc get configmap my-connector-offsets -n <namespace>구성 맵의 콘텐츠를 검사하여 오프셋이 나열되어 있는지 확인합니다.
oc describe configmap my-connector-offsets -n <namespace>Apache Kafka의 스트림은 오프셋 정보를
offsets.json속성에 배치합니다. 기존 구성 맵을 업데이트할 때 다른 속성을 덮어쓰지 않습니다.소스 커넥터 오프셋 목록의 예
apiVersion: v1 kind: ConfigMap metadata: # ... ownerReferences:1 - apiVersion: kafka.strimzi.io/v1beta2 blockOwnerDeletion: false controller: false kind: KafkaConnector name: my-source-connector uid: 637e3be7-bd96-43ab-abde-c55b4c4550e0 resourceVersion: "66951" uid: 641d60a9-36eb-4f29-9895-8f2c1eb9638e data: offsets.json: |- { "offsets" : [ { "partition" : { "filename" : "/data/myfile.txt"2 }, "offset" : { "position" : 152953 } } ] }싱크 커넥터 오프셋 목록의 예
apiVersion: v1 kind: ConfigMap metadata: # ... ownerReferences:1 - apiVersion: kafka.strimzi.io/v1beta2 blockOwnerDeletion: false controller: false kind: KafkaConnector name: my-sink-connector uid: 84a29d7f-77e6-43ac-bfbb-719f9b9a4b3b resourceVersion: "79241" uid: 721e30bc-23df-41a2-9b48-fb2b7d9b042c data: offsets.json: |- { "offsets": [ { "partition": { "kafka_topic": "my-topic",2 "kafka_partition": 23 }, "offset": { "kafka_offset": 44 } } ] }