
이전글: 2025.05.16 - [기술노트/Apach Kafka] - Kafka 기초4 - 컨슈머 그룹지난 글에서는 카프카에서 데이터 소비의 확장성과 안정성을 책임지는 컨슈머 그룹과 메시지 전달 의미론에 대해 자세히 알아보았다. 컨슈머가 메시지를 잘 소비하기 위해서는, 그 메시지를 어딘가에 안전하게 보관하고 있다가 요청에 맞춰 전달하는 역할이 필수적이다. 바로 카프카 브로커(Kafka Broker) 가 그 중요한 임무를 수행하는 주체이다. 이번 글에서는 카프카 시스템의 핵심 구성원이자 데이터 저장과 전송의 실무를 담당하는 브로커에 대해 좀 더 구체적으로 파고들어 보고자 한다. 브로커가 무엇이고, 데이터는 어떻게 관리하며, 클라이언트와는 어떻게 소통하는지 설명하도록 하겠다. 브로커(Broker)란? 브로..

이전글: 2025.05.02 - [기술노트/Apach Kafka] - Kafka 기초3 - 컨슈머이번 글에서는 여러 컨슈머가 협력하여 데이터를 병렬적으로 처리하는 강력한 기능인 컨슈머 그룹(Consumer Group) 에 대해 심도 있게 다뤄보겠다. 컨슈머 그룹(Consumer Group)이란?카프카에서 컨슈머 그룹(Consumer Group) 이란 여러 컨슈머가 하나의 논리적인 그룹으로 묶여,특정 토픽의 데이터를 분담해서 읽어오는 구조를 말한다. 컨슈머 그룹을 사용하면 메시지 처리량을 확장하고, 시스템 장애 발생 시에도 안정적으로 데이터를 소비할 수 있다. 컨슈머 그룹의 가장 중요한 특징은 같은 그룹 내의 컨슈머들은 동일한 파티션의 데이터를 중복으로 소비하지 않는다는 점이다. 즉, 하나의 파티션은 해당..

알람 소리에 겨우 눈을 떴다.침대에서 일어나 화장실로 향해 씻고 짐을 챙겨 밖으로 나왔다.하늘이 흐렸지만 비는 아직 내리지 않았다. 늘 하던 대로 휴대폰을 꺼내 알림을 확인하는데, 앞에서 여자가 부리나케 뛰어가는 모습이 눈에 들어왔다.지면을 보니 빗방울 자국이 하나둘씩 생겨나고 있었다.우산은 가져오지 않았다.회사까지는 걸어서 10분. 나도 뛰기 시작했다. 점점 많아지는 빗방울. 내 발걸음도 덩달아 빨라졌다.회사 앞 횡단보도에 빨간불이 들어왔다.우산이 없어 근처 나무에 기대어 비를 조금이라도 피해보았다. 파란불로 바뀌자마자 회사 앞 메머드 커피까지 빠르게 달려갔다.비를 털며 1층 출입구로 들어오는데, 오늘따라 사람이 없고 건물이 어둡게 느껴졌다.엘리베이터를 타고 6층 버튼을 눌렀다.비 때문인지 6층에도 사..

이전글:2025.05.02 - [기술노트/Apach Kafka] - Kafka 기초2 - 프로듀서 & 메세지이전 글에서는 카프카로 데이터를 보내는 프로듀서에 대해 알아보았다.이번 글에서는 프로듀서가 보낸 데이터를 실제로 읽어와 처리하는 카프카 컨슈머(Consumer) 에 대해 다뤄보겠다.컨슈머(Consumer)란? 카프카에서 컨슈머란 카프카 토픽(Topic)에 저장된 데이터를 읽어오는 컴포넌트이다.프로듀서가 데이터를 생산하는 주체라면, 컨슈머는 해당 데이터를 소비하는 역할을 한다. 컨슈머는 풀(Pull) 방식으로 동작한다.풀 방식이란 컨슈머가 능동적으로 카프카 브로커에 데이터를 요청하여 가져오는 구조다.이는 브로커가 일방적으로 데이터를 컨슈머에게 밀어 넣는 푸시(Push) 방식과는 대조되는 방식이며,컨슈..

이전글:2025.05.02 - [기술노트/Apach Kafka] - Kafka 기초1 - 토픽, 파티션, 오프셋카프카에서 프로듀서(Producer)는 끊임없이 생성되는 데이터를 카프카의 토픽에 흘려보내는 역할을 한다.이번 글에서는 카프카 프로듀서가 무엇이며, 어떻게 동작하여 데이터를 안정적으로 전송하는 지에 대해 자세히 알아본다.프로듀서(Producer)란?프로듀서(Producer)란 카프카의 토픽(Topic)으로 데이터를 전송하는 역할을 담당하는 애플리케이션 또는 컴포넌트를 의미한다. 프로듀서는 생성된 메시지를 특정 토픽의 특정 파티션(Partition)으로 보내는 주체이다. 프로듀서는 카프카 서버(Broker)와 연결하여, 토픽을 기준으로 메세지를 발행하는데 이때, 토픽은 내부적으로 어러 파티션으로 ..

이전글: 2025.05.02 - [기술노트/Apach Kafka] - Kafka 기초0 - Apach Kafka란이번 글에서는 카프카의 내부 동작 원리를 이해하는 데 있어 가장 기본적이면서도 핵심적인 세 가지 구성 요소, 바로 토픽(Topic), 파티션(Partition), 그리고 오프셋(Offset) 에 대해 자세히 알아본다. 이들은 카프카가 어떻게 데이터를 조직하고, 저장하며, 소비할 수 있게 하는지의 근간을 이룬다.토픽(Topic)이란?카프카에서 토픽은 데이터가 흘러가는 논리적인 통로이자 분류 단위다.특정 종류의 메시지들을 그룹화하는 이름표라고 생각할 수 있다. 예를 들어, 쇼핑몰과 같은 이커머스 시스템이라면주문 생성은 order 토픽,결제 완료는 payment 토픽,배송 시작은 shipment 토..

Apache Kafka란?Apache Kafka는 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 수천 개의 회사에서 사용하는 오픈 소스 분산 이벤트 스트리밍 플랫폼이다.왜 사용할까?회사 시스템을 들여다보면 한숨부터 나온다. 데이터베이스(DB)에서 데이터를 뽑아 분석 도구로 보내고,또 다른 데이터를 가공해 이메일 시스템으로도 보내야 한다. 늘어나는 서비스만큼 소스 시스템과 타겟 시스템은 거미줄처럼 얽혀만 간다.단순히 계산해 봐도 그렇다.소스가 4개, 데이터를 받아야 할 타겟이 6개라고 치자. 점대점으로 연결한다면 최대 24개의 통합 파이프라인이 필요하다.상상만 해도 머리가 지끈거린다. 이게 다가 아니다. 어떤 놈은 REST로 데이터를 던지고, 다른 놈은 FTP..

우리 친구 중 한 명은 별명이 "해결사"다.밈처럼 곤란한 문제가 발생하면 "야, 이것 좀 해결해줘" 가 일상이 되었다. 그래서 그 친구를 놀리기 위한 토이 프로젝트를 만들어보기로 했다.의뢰를 받고, 처리하고, 리뷰를 남기는 시스템. 마치 친구가 공식적인 '해결사'가 된 것처럼 의뢰를 처리하는 시스템을 만들어보자는 아이디어였다. 그래서 'Mr.FixFree'라는 이름이 탄생했다.Mr.FixFree의 특징내가 만든 Mr.FixFree는 의뢰 관리 시스템이다.이름에서 알 수 있듯이 '무료로 고쳐주는 미스터'라는 의미로, 해결사 친구의 무료 해결 서비스를 공식화한 셈이다.웹 애플리케이션으로 만들어 누구나 쉽게 접근할 수 있도록 했다. 친구들에게 도움이 필요할 때면 이제는 "의뢰해."라고 한다.처음에는 뭔 소리냐..

사무실에서 점심 메뉴를 정하거나 누가 커피를 살지 고를 때마다 의견이 갈라졌다. 치킨파, 중국집파, 분식파로 나뉘어 한참을 실랑이를 벌이다 결국 추첨을 하곤 했다. 그런데 매번 제비뽑기나 랜덤 번호 생성기로 하니 너무 밋밋하지 않은가? 그래서 내가 직접 만들어 보기로 했다. 내가 만든 'Lucky Draw'는 경마처럼 말들이 달리면서 승자를 가리는 추첨 방식이다. 단순한 번호 추첨이 아니라 레이싱 게임을 보는 것 같은 재미를 주고 싶었다. 테스트로 회사 동료들에게 보여줬더니, 누가 1등으로 들어오나 다들 소리 지르며 응원했고, 갑자기 꼴찌였던 '치킨파'가 부스터를 써서 1등을 탈환하는 장면에서는 다 같이 환호성을 질렀다. 'Lucky Draw'는 Three.js 기반의 3D 그래픽으로 만들었다. 이 웹 ..
- Total
- Today
- Yesterday
- Serializer
- 역직렬화
- 디커플링
- 파티셔닝
- sticky partitioner
- 토픽
- 아파치카프카
- 카프카
- 파티션
- 백프레셔
- 컨슈머
- 오프셋
- 클러스터
- 분산서비스
- 컨슈머그룹
- 라운드로빈
- 키 기반 파티셔닝
- 프로듀서
- Apache kafka
- 직렬화
- Consumer
- Producer
- kafak
- Kafka
- 브로커
- broker
- Cluster
- 소비자
- apach kafka
- 메세지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |