분산처리 4

kafka의 기본 구성요소들 broker, topic, partition

kafka는 다음과 같은 기본 구성요소들이 있습니다. 1. producer(publisher, source application) 2. consumer(subscriber, target application) 3. broker 4. topic 5. partition 이번글에선 broker,topic,partition에 대해 알아보겠습니다. broker broker는 실제 컴퓨터 한대의 논리적인 단위입니다. producer와 consumer bootstrap.server설정에 넣던 주소가 broker의 주소인 것이죠 broker는 보통 고가용성을 위해 최소 3대 이상 구동됩니다. broker들의 한 묶음이 kafka 클러스터 입니다. topic topic은 직역하면 주제입니다. topic은 데이터를 나누는..

분산처리 2023.01.14

kafka의 기본 구성요소들 consumer

kafka는 다음과 같은 기본 구성요소들이 있습니다. 1. producer(publisher, source application) 2. consumer(subscriber, target application) 3. broker 4. topic 5. partition 이번글에선 consumer에 대해 알아보겠습니다. old/new consumer에는 old/new consumer가 있습니다. 두 consumer의 가장 큰 차이는 zookeeper의 유무 입니다. kafka를 공부해보신분들이라면 최근들어 kafka가 zookeeper를 사용하지 않는다는 걸 들어보셨을겁니다. 왜 사용안하는지 검색하러 가실분들을 위해 간단하게 설명드리면 ZooKeeper stores persistent cluster metad..

분산처리 2023.01.10

kafka의 기본 구성 요소들 producer

kafka는 다음과 같은 기본 구성요소들이 있습니다. 1. producer(publisher, source application) 2. consumer(subscriber, target application) 3. broker 4. topic 5. partition 이글에선 producer에 대해 알아보겠습니다. producer producer는 publisher또는 source application이라고도 합니다. producer가 하는 역할은 다음과 같습니다. 1. topic에 보낼 메세지 생성 2. topic으로 메세지 전송(publish) 3. 전송 성공여부 확인/재시도 producer가 topic으로 데이터를 보낼때는 1. 직렬화 2. 파티셔닝 3. 압축 4. 배치 5. 전달 순으로 진행 됩니다..

분산처리 2023.01.09

Kafka를 사용하는 이유

kafka의 탄생 kafka는 링크드인에서 근무하던 제이 크렙스(현 confluent ceo), 준 라오, 네하 나크헤데가 링크드인 서비스 내에서 발생하는 이슈들을 해결하기 위해 만들었습니다. 그럼 링크드인 내의 이슈들을 무엇이 있었을까요? 대표적으로 데이터 파이프라인의 확작성, 이기종 간의 호환성, 고성능 기반의 실시간 데이터처리에 대한 어려움이 있었습니다. 기존 링크드인은 데이터 파이프라인 처리를 위해 redis, rabbitMQ등 여러 애플리케이션을 사용했고 각각의 특징이 뚜렷하여 파편화가 심했습니다. 파편화는 같은 기능 애플리케이션을 만들어도 개발자가 각각에 호환되는 소프트웨어(redis, rabbitMQ가 이에 속하죠)를 만들게 했습니다. 이러한 파편화는 유지보수를 어렵게 했고 이는 비즈니스를 ..

분산처리 2023.01.09