Kafka
-
[Kafka] Replication 의 시간은 얼마나 걸릴까 ? ( kafka-reassign-partitions )Kafka 2024. 1. 14. 07:39
- 목차 들어가며. 이번 글에서는 하나의 실험을 진행하려고 합니다. 아래의 그림처럼 Replication Factor 을 1개 추가하여 모든 브로커에서 Partition 복제가 발생하는 경우, 얼마나 시간이 소요되는지를 파악하려고 합니다. 환경은 저희 로컬 컴퓨터 내에서 docker-compose 로 구현한 Kafka cluster 에서 진행하였습니다. 먼저 아래와 같이 test-topic 이라는 이름의 토픽을 생성하였구요. Partiiton 은 3, Replication Factor 는 2로 설정하였습니다. 한 Partition 당 400MB 의 용량을 가지도록 레코드를 추가하였습니다. Log File 의 크기는 아래와 같습니다. total 400M -rw-r--r-- 1 appuser appuser ..
-
[Kafka Consumer] Exactly-Once 구현하기Kafka 2024. 1. 13. 05:32
- 목차 들어가며. Kafka Consumer 는 하나의 Data Processor 로써 동작합니다. 그리고 처리한 데이터를 토대로 외부 Application 들과 상호작용하게 되는데요. 예를 들어, 조회한 Topic 의 레코드를 처리하여 데이터베이스에 삽입을 한다던지. 처리한 데이터를 또 다른 Topic 으로 Produce 하거나, Email 이나 SMS 전송을 시도할 수 있습니다. 이러한 상황에서 Kafka Consumer 가 FailOver 또는 Repartitioning 에 의해서 재시작하게 되면, 일부 데이터의 손실이나 중복 처리의 위험이 발생합니다. 데이터의 손실이 발생하는 경우. 데이터의 손실이 발생하는 경우는 Offset Commit 을 너무 빨리 시도하는 경우에 발생합니다. 먼저 아래의 ..
-
Kafka Consumer Configuration 알아보기 ( session.timeout.ms, heartbeat.interval.ms, auto.offset.reset, auto.commit.interval.ms )Kafka 2024. 1. 13. 05:31
- 목차 관련있는 다른 글. https://westlife0615.tistory.com/587 Kafka Consumer Configuration 알아보기 (fetch.min.bytes, fetch.max.wait.ms, max.partition.fetch.bytes) - 목차 관련있는 다른 글. https://westlife0615.tistory.com/588 Kafka Consumer Configuration 알아보기 ( session.timeout.ms, heartbeat.interval.ms, auto.offset.reset, auto.commit.interval.m - 목차 들어가며. 이번 글에서는 Kafka Consume westlife0615.tistory.com 들어가며. 이번 글에서는 K..
-
Kafka Consumer Configuration 알아보기 (fetch.min.bytes, fetch.max.wait.ms, max.partiKafka 2024. 1. 12. 20:09
- 목차 관련있는 다른 글.https://westlife0615.tistory.com/588 Kafka Consumer Configuration 알아보기 ( session.timeout.ms, heartbeat.interval.ms, auto.offset.reset, auto.commit.interval.m- 목차 들어가며. 이번 글에서는 Kafka Consumer 의 Configuration 들 중에서 heartbeat.interval.ms, session.timeout.ms, auto.offset.reset, auto.commit.interval.ms 등 에 대해서 알아보도록 하겠습니다. heartbeat.interval.ms Kafka Cwestlife0615.tistory.com 들어가며.이번 글..
-
Kafka Log Compaction 알아보기Kafka 2024. 1. 12. 06:38
- 목차 들어가며. 카프카 토픽은 데이터의 용량과 시간 조건을 기준으로 데이터를 삭제합니다. 이를 Retention 이라고 하는데요. retention.ms, retention.bytes 와 같은 설정을 통해서 카프카는 토픽의 데이터의 저장 기간을 지정할 수 있습니다. 카프카 토픽의 기존 설정으로 retention.ms 는 7일 그리고 retention.bytes 는 제한이 없습니다. 즉, 기본 설정의 토픽을 생성하게 되면 7일 주기로 토픽에 추가된 데이터는 삭제되고 용량과 관련된 제약은 없다고 생각하시면 됩니다. 아래 이미지처럼 retention.ms 가 7일인 상황에서 7일이 경과된 Log Sgement 파일들은 하나씩 삭제가 됩니다. 00000000.log, 00010000.log, 00033000..
-
[ Kafka Producer ] 불안정한 네트워크에서 데이터 생성하기 ( Acks, Retries )Kafka 2024. 1. 9. 05:22
- 목차 들어가며. 이번 글에서는 카프카 클러스터의 네트워크를 의도적으로 불안정하게 만든 이후에 Kafka Producer 가 어떻게 해야 안정적으로 데이터를 생성할 수 있는지 알아보려고 합니다. 아래의 링크는 Docker 를 활용하여 카프카 클러스터를 구축하는 내용이 적힌 페이지의 주소입니다. https://westlife0615.tistory.com/474 Docker 로 Kafka Cluster 구축해보기. - 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-compose 를 활용하여 Kafka, ZooKeeper 클러스터를 구축하는 내용을 작성하려고 합니다. docker-com westlife0615.tistory.com 실험. 아래의 명..
-
[Kafka-Streams] mapValues 알아보기Kafka 2024. 1. 9. 05:22
- 목차 들어가며. 이번 글에서는 kafka streams API 의 mapValues 의 기능에 대해서 알아보려고 합니다. mapValues API 는 kafka streams 의 Stateless 한 데이터 변형을 제공하는 기능입니다. 이전 상태와 무관하가 현재 처리하는 데이터의 상태와 변형에 집중합니다. 아래 링크는 Docker 로 Kafka Cluster 를 간단히 구축하는 내용을 적은 웹사이트의 링크입니다. https://westlife0615.tistory.com/474 Docker 로 Kafka Cluster 구축해보기. - 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-compose 를 활용하여 Kafka, ZooKeeper 클러..
-
[Kafka-Connect] S3 Sink Connector 따라해보기 1Kafka 2024. 1. 8. 21:07
- 목차 들어가며. 이번 글에서는 Kafka Connect 의 S3 Sink 를 구현해보려고 합니다. 사용할 데이터는 Kaggle User Behavior - Advertisement 데이터를 사용할 예정이구요. 아래 링크에서 해당 데이터를 내려받으실 수 있습니다. https://www.kaggle.com/code/srolka/user-behavior-advertisement/input?select=advertising.csv User Behavior - Advertisement Explore and run machine learning code with Kaggle Notebooks | Using data from Advertisement www.kaggle.com 사용할 advertisement cs..
-
[Kafka-Streams] KStream 알아보기Kafka 2024. 1. 6. 06:38
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/474 Docker 로 Kafka Cluster 구축해보기. - 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-compose 를 활용하여 Kafka, ZooKeeper 클러스터를 구축하는 내용을 작성하려고 합니다. docker-com westlife0615.tistory.com 소개. 이번 글에서 Kafka Streams 의 KStream 에 대해서 알아보려고 합니다. KStream 은 카프카 스트림 프로세싱 어플리케이션에서 mutation 되는 Stream 의 단위입니다. 그러니깐 끊임없이 이벤트가 유입되는 스트림 환경에서 여러 Transformation..
-
[Kafka] ProducerInterceptors 알아보기Kafka 2024. 1. 5. 06:12
- 목차 소개. ProducerInterceptor 는 Kafka Producer 의 한가지 기능입니다. ProducerInterceptor 의 Fully Qualified Name 은 org.apache.kafka.clients.producer.ProducerInterceptor 이며, org.apache.kafka.clients.producer 패키지에 속합니다. ProducerInterceptor 의 주된 기능은 카프카 메시지가 생성되는 Lifecycle 에서 Callback 을 제공합니다. Callback Function 은 onSend, onAcknowledgement 두가지입니다. onSend 는 메시지가 생성되는 과정에서의 Callback 이구요. onAcknowledgement 는 메시지의..