kafka - connector 구성요소
·
DataPipeline/Kafka
구성 요소 ( Connector, Converter, Transform )Kafka Connect는 여러 컴포넌트로 구성된 플러그형 아키텍처를 바탕으로 유연한 데이터 통합 파이프라인을 제공합니다. 주요 컴포넌트로는 데이터 소스 및 싱크와 상호작용하는 커넥터(Connectors), 데이터 직렬화/역직렬화를 담당하는 컨버터(Converters), 데이터 변환을 수행하는 변환기(Transforms)가 있습니다. ConnectorKafka Connect 파이프라인의 주요 구성 요소는데이터가 어디에서 복사되어야 하는지를 정의하는 커넥터 인스턴스입니다. 커넥터 인스턴스에 의해 구현되거나 사용되는 모든 클래스는 해당 커넥터 플러그인에 정의되어 있고,이러한 플러그인은 코드 작성을 하지 않고 다운로드, 설치 및 사용할 ..
실전 카프카 - 11장 카프카 커넥트
·
DataPipeline/Kafka
핵심 개념소스 커넥트데이터 소스와 카프카 사이에서 프로듀서 역할을 합니다. 싱크 커넥트카프카와 타겟시스템 사이에서 컨슈머 역할을 합니다.  내부 동작Partitioning (파티셔닝)커넥터에 복사되어야 하는 데이터들은 레코드 순서에 맞추어 파티셔닝 됩니다.커넥트에서 나눈 파티션은 카프카 파티션과 용어만 같을 뿐입니다. Tasks (태스크)커넥터가 병렬로 실행될 수 있도록 여러 태스크(Task)로 나뉩니다. 커넥터가 여러 태스크로 분할되면 병렬 작업을 통해 성능을 개선할 수 있습니다. Topic (토픽)태스크들은 다수의 토픽으로 전송됩니다. Connect Converter (커넥트 컨버터 )소스 -> 카프카로 전달할 때 직렬화(serialization)카프카 -> 싱크로 전달할 때 역직렬화(deserial..
실전 카프카 - 10장 스키마 레지스트리
·
DataPipeline/Kafka
[ 스키마의 개념 ]카프카에서는 토픽으로 전송되는 메세지에 대해 미리 형식을 정의한 후 전송함으로써DB 스키마와 같은 효과를 얻을 수 있습니다.  스키마를 통해 데이터를 consume하는 여러 부서가 있다면스키마를 통해 데이터에 대한 정확한 정의 및 데이터 변경여부를 알려 줄 수 있습니다. 또한 데이터 형식을 벗어난 데이터 필드에 대해 미리 파악 할 수 있습니다.  [ 스키마 레지스트리 ]카프카에서 스키마를 활용하는 방법은 스키마 레지스트리라는를 애플리케이션을 이용하는 것 입니다.아키텍처스키마 레지스트리는 카프카와 별도로 구성된 독립적인 애플리케이션으로,프로듀서 / 컨슈머와 직접 통신합니다.  [ 에이프로(Avro) 포맷 ]스키마 레지스트리가 지원하는 대표적인 데이터 포맷은 에이브로(Avro)이며데이터 ..
실전 카프카 - 6장 컨슈머 동작원리와 구현
·
DataPipeline/Kafka
[ 컨슈머 오프셋 관리 ]- 컨슈머의 동작 중 핵심은 오프셋 관리 ( 컨슈머가 메세지를 어디까지 읽었는지 )- 컨슈머들은 지정된 토픽의 메세지를 읽은 뒤, 오프셋 정보를 _consumer_offests 파일에 기록합니다.- 컨슈머 그룹에서 컨슈머의 변경이 발생하면 _consumer_offests 통해 읽은 위치를 추적할 수 있습니다. [ 그룹 코디네이터 ]- 안정적인 컨슈머 그룹 관리를 위해 별도의 코디네이터가 존재합니다.- 컨슈머 그룹이 구독한 토픽들을 트래킹하여, 작업을 균등하게 재분해하기 위해 리벨런싱 동작을 수행합니다.( 새로운 컨슈머가 그룹 내에 추가되거나 삭제되는 멤버에 변화가 생기면 수행 )- 컨슈머들의 변경을 가지하기 위해 그룹 코디네이터와 컨슈머들은 서로 하트비트를 주고 받습니다.컨슈머 ..
실전 카프카 - 5장 프로듀서 동작원리와 구현
·
DataPipeline/Kafka
[ 파티셔너 ]피텨셔너는 프로듀서가 토픽으로 메세지를 보낼 때, 토픽의 어느 파티션으로 메세지를 보내야 할지를 결정합니다.메세지 키를 해시처리해 파티션을 구하는 방식을 결정합니다. 라운드로빈 전략별도의 메세지 키가 지정되지 않으면 라운드로빈 알고리즘을 활용해 토픽의 파티션들로 랜덤 전송합니다.producer로 전송을 위한 파티션별 최소 레코드 수 기준(batch size)을 채우지 못한 경우,프로듀서의 버퍼 메모리 영역에서 대기가 길어질 수 있습니다. 스티키 파티셔닝 전략 카프카 2.4버전 이후로 이를 위해 스티키 파티셔닝 전략을 사용하게 됩니다.배치 전송을 위한 필요 레코드수를 하나의 파티션에 먼저 채워서 빠르게 배치 전송하는 전략입니다.P1, P2 .. 는 batch.size이고 P1 + P2 .. ..
실전 카프카 - 4장 내부 동작 원리와 구현
·
DataPipeline/Kafka
[ 리플리케이션 ]안정성을 확보하기 위해 카프카 내부에서는 리플리케이션이라는 동작을 실행합니다.토픽의 리플리케이션(복제)를 통해 데이터의 유실을 방지하며, 토픽 생성시 필수로 입력해야 합니다. ( replication-factor 옵션 )# 토픽 생성/kafka/bin/kafka-topic.sh --bootstrap-server server1.name.com:9020 \--create --topic test01 --partitions 1 --replication-factor 3# 생성된 토픽 정보 확인하여 replication 여부 확인/kafka/bin/kafka-topic.sh --bootstrap-server server1.name.com:9020 \--topic test01 --describe이후..
실전 카프카 - 3장 기본 개념과 구조
·
DataPipeline/Kafka
[ 기초 개념 ]리플리케이션 Replication토픽 생성 명령 중 replication-factor 2 이라는 옵션을 설정하면원본을 포함한 복제본이 총 2개가 있다는 뜻입니다.리플리케이션 팩터 수가 커지면 안정성은 높아지지만브로커 리소스를 많이 사용하게 됩니다. 파티션 Partition하나의 토픽이 한 번에 처리할 수 있는 처리량을 늘리기 위해토픽을 여러 개로 나눠 병렬 처리가 가능하게 만든 것을 파티션이라고 합니다.나뉜 파티션 수만큼 컨슈머를 연결할 수 있습니다. 파티션은 언제든 늘릴 수 있지만 줄일 수는 없으므로,컨슈머의 LAG ( 프로듀서 메세지 수 - 컨슈머 메세지 가져간 수)가 0이 되도록 설정하는 것이 좋습니다. 참조 - 파티션과 컨슈머 할당에 대한 글 세그먼트 Segment프로듀서 의해 브..
Kafka - CDC Connector Debezium 예제
·
DataPipeline/Kafka
[ 데비지움 ( Debezium ) 이란? ]변경 데이터 캡처(Change Data Capture, CDC)로,데이터베이스의 변경 사항을 실시간으로 추적하고 이를 스트림 형태로 전달하는 오픈 소스 분산 플랫폼입니다.주로 CDC 이벤트를 Kafka로 topic으로 전달하는데 사용하며, Sink connector로 설정됩니다.다른 방법으로 적용할 수도 있습니다.데비지움 서버를 이용한 배포Java 라이브러리 데비지움 엔진Debezium connector는 데이터베이스의 변경 로그(binlog, WAL 등)를모니터링하여 실시간으로 변경 사항을 감지합니다.  [ 예제 with Docker ]고려사항 ( Consideration )Debezium 튜토리얼에서는 Docker를 활용하여 ZooKeeper, Kafka,..
wave35
'DataPipeline/Kafka' 카테고리의 글 목록