Kafka

Kafka

Apache Kafka Record

Recordrecord는 kafka의 데이터 통신을 위한 객체이며 이를 위해 필요한 값들을 저장하고 있다. record는 프로듀서가 메세지를 보낼 때 사용하는 producer-record와 컨슈머가 메세지를 받을 때 사용하는 consumer-record로 나뉜다. Producer Recordtopicrecord가 어느 topic으로 전송되어야하는지를 저장하는 값이며 레코드 생성시 초기화한다.partition record가 어느 partition으로 전송되어야하는지를 저장하는 값이며 레코드 생성시 초기화해 파티션을 명시하거나, partitioner가 round-robin 방식 또는 hash-key를 이용해 목적지 partition데이터를 세팅한다.headersrecord에 부가적인 정보를 담기 위한 부분..

Kafka

Apache Kafka Producer

Kafka Producerkafka 에서 topic에 메세지를 보내는 주체를 producer라고 한다.  producer는 kafka-console-producer를 사용할 수도 있지만 보통 프로듀서 애플리케이션으로 구현해 사용한다. kafka에서 지원하는 공식 언어는 java다. python, javascript, golang 등의 언어를 사용해 애플리케이션을 구축할 수도 있지만 공식 지원 언어가 아니기 때문에 구조적/성능적 이슈가 존재할 수 있으니 주의해야한다.kafka library를 이용해 구현한 프로듀서 애플리케이션은 아래와 같은 구조를  가진다. producer record를 사용해 메세지를 전송하고 직렬화 후 partitioner가 producer record를 어떤 partition으로 보..

Kafka

Apache Kafka Basic

1. 카프카 등장 배경카프카는 Linked-In에서 소스 애플리케이션고 타켓 애플리케이션을 분리하기 위해 만들어졌다. 기존의 데이터 파이프라인은 아래와 같이 각각의 애플리케이션을 직접 연결하는 구조였는데 아래와 같이 타겟 애플리케이션에 장애가 발생하면 소스 애플리케이션에도 치명적인 문제가 발생한다. 또한, 아키텍처가 복잡해짐에따라 애플리케이션의 갯수가 많아지면서 데이터 파이프라인도 기하급수적으로 복잡해졌다. 이러한 문제를 해결하고자 Linked-In에서는 카프카를 만들어냈고 카프카는 애플리케이션을 직접 연결하는 방식이 아니라 중앙에서 데이터를 처리하는 방식으로 모든 애플리케이션이 카프카를 통해 데이터를 수집하고 분배한다.   2. 카프카의 특징1️⃣  높은 처리량카프카도 결국 데이터를 전송하려면 송수신..

Jisung Jung
'Kafka' 카테고리의 글 목록