반응형
- Kafka 핵심요소
- Broker : 카프카 애플리케이션 서버 단위
- Topic : 데이터 분리 단위. 다수 파티션 보유
- Partition : 레코드를 담고 있음. 컨슈머 요청 시 레코드 전달
- Offset : 각 레코드당 파티션에 할당된 고유 번호
- Consumer : 레코드를 polling하는 애플리케이션
- Consumer group : 다수 컨슈머 묶음
- Consumer offset : 특정 컨슈머가 가져간 레코드의 번호
- Producer : 레코드를 브로커로 전송하는 애플리케이션
- Replication : 파티션 복제 기능
- ISR : 리더 + 팔로워 파티션의 sync가 된 묶음
- Rack-awareness : Server rack 이슈에 대응
- Kafka Client
- Kafka 와 데이터를 주고받기 위해 사용하는 Java Library
https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients - Producer, Consumer, Admin, Stream 등 Kafka관련 api 제공
- 다양한 3rd party library 존제 : C/C++, Node.js, Python, .Net 등
https://cwiki.apache.org/confluence/display/KAFKA/Clients - Kafka broker 버젼과 client 버젼 하위호환 확인 필요
https://blog.voidmainvoid.net/193
- Kafka 와 데이터를 주고받기 위해 사용하는 Java Library
- Kafka Streams
- 데이터를 변환(Transformation)하기 위한 목적으로 사용하는 API
- 스트림 프로세싱을 지원하기 위한 다양한 기능을 제공
- Stateful 또는 Stateless와 같이 상태기반 스트림 처리 가능
- Stream api와 DSL(Domain Specific Language)를 동시 지원
- Exactly-once 처리, 고가용성 특징
- Kafka security(acl, sasl 등) 완벽 지원
- 스트림 처리를 위한 별도 클러스터(ex. yarn 등) 불필요
- Kafka Connect
- 많은 경우 Kafka client로 Kafka로 데이터를 넣는 코드를 작성할 때도 있지만, Kafka connect를 통해 data를 Import/Export 할 수 있음.
- 코드 없이 configuration으로 데이터를 이동시키는 것이 목적
- Standalone mode, distribution mode 지원
- REST api interface를 통해 제어
- Stream 또는 Batch 형태로 데이터 전송 가능
- 커스텀 connector을 통한 다양한 plugin 제공(File, S3, Hive, Mysql etc…)
- Kafka Mirror maker
- 특정 카프카 클러스터에서 다른 카프카 클러스터로 Topic 및 Record를 복제하는 Standalone tool
- 2019년 11월, 기존 MirrorMaker를 개선한 MirrorMaker2.0 release.
- 클러스터간 토픽에 대한 모든 것을 복제하는 것이 목적
- 신규 토픽, 파티션 감지기능 및 토픽 설정 자동 Sync기능
- 양방향 클러스터 토픽 복제
- 미러링 모니터링을 위한 다양한 metric(latency, count 등) 제공
- 그 외 Kafka 생태계를 지탱하는 app들
- confluent/ksqlDB : sql구문을 통한 stream data processing 지원
- confluent/Schema Registry : avro기반의 스키마 저장소
- confluent/REST Proxy : REST api 를 통한 consumer/producer
- linkedin/Kafka burrow : consumer lag 수집 및 분석
- yahoo/CMAK : 카프카 클러스터 매니저
- uber/uReplicator : 카프카 클러스터 간 토픽 복제(전달)
- Spark stream : 다양한 소스(카프카 포함)로 부터 실시간 데이터 처리
⚠️일부 오픈소스의 경우 라이센스 이슈 확인 필요
참고한 영상
제가 kafka에 대해 공부하면서 참고했던 영상입니다.
'기타' 카테고리의 다른 글
Kafka 간단한 개념 정리 (1) (1) | 2023.12.21 |
---|---|
readme의 트리 구조 폴더링 간단 생성 방법 (0) | 2023.11.09 |
댓글