DevOps/Kafka 9

[Kafka] Dead Letter Queue

1. Dead Letter Queue란?메시지 브로커가 전달에 실패한 메시지를 별도로 보관하는 백업 저장소✅ 소비자가 처리 중 메시지 처리가 실패될 수 있음✅ 견고하고 장애에 강한 데이터 파이프라인을 구축할 때 중요한 요소 이점목적설명Fault Tolerance메시지 처리 중 오류가 발생해도 전체 시스템에 영향을 주지 않도록 함Data Integrity처리할 수 없는 메시지를 안전하게 저장해 데이터 손실을 방지Recovery원인 해결 후 DLQ에 쌓인 메시지를 선택적으로 재처리해 데이터/서비스 복구 가능Monitoring & Troubleshooting실패한 메시지를 추적·분석하여 오류 원인 파악 및 디버깅 용이Scalability실패한 메시지를 DLQ로 분리하여 메인 처리 흐름의 적체(Backlog) ..

DevOps/Kafka 2025.08.15

[Debezium] 1. Introduction

다양한 데이터베이스의 CDC를 위한 오픈소스 커넥터 모음 (Kafka Connect 위에서 동작함)각 데이터베이스의 로그를 기반으로 한 변경 스트림을 읽음 장점항목설명예완전성모든 데이터 변경을 누락 없이 캡처 낮은 지연폴링 대비 매우 낮은 레이턴시MySQL·Postgres 사례: ms 수준스키마 변경 불필요Last Updated 같은 컬럼 추가 불필요 삭제 캡처DELETE 이벤트도 포함 메타데이터 제공DB/설정에 따라 포함 가능이전 레코드 상태, 트랜잭션 ID, 유발 쿼리 등 1. ArchitectureKafka Connect 위에서 동작하는 소스 커넥터로 배포됨구분내용가능 여부/비고토픽 네이밍기본은 서버/DB/테이블 기반 토픽명 생성✅ SMT로 패턴 치환/이름 변경 가능토픽 라우팅 1:1한 테이블 → ..

DevOps/Kafka 2025.08.11

[MongoDB Kafka Connector] 1. Kafka Connector

1. Kafka ConnectorApache Kafka의 하위 구성 요소Kafka를 데이터 저장소와 연결해줌 2. Install the MongoDB Kafka ConnectorKafka plugins 디렉토리에 복사커넥터 플러그인(JAR 파일들)을 plugin.path로 지정된 디렉토리에서 찾음예: plugin.path=/usr/local/share/kafka/plugins 라고 설정하면,/usr/local/share/kafka/plugins 폴더 안에 MongoDB Kafka Connector JAR을 넣어야 함.이렇게 하면 Kafka Connect 실행 시 해당 디렉토리에서 커넥터 클래스를 자동으로 로딩합니다. 분산 모드(Distributed Worker)Kafka Connect는 Standalon..

DevOps/Kafka 2025.08.10

[Kafka] 9. Kafka Streams

3. Developer Guide항목명간단 설명Writing a Streams Application스트림 처리 로직을 작성하고 실행하는 기본 구조 제공 (토폴로지 정의)Configuring a Streams Application설정 지정 (브로커 주소, 앱 ID, 직렬화 방식 등)Streams DSL고수준 연산을 위한 간편 API (map, filter 등)Processor API사용자 정의 처리 로직을 위한 저수준 APINaming OperatorsDSL 연산자에 이름 붙이기 (디버깅/모니터링 용이)Data Types & Serialization메시지 직렬화/역직렬화 방식 정의TestingTopologyTestDriver로 로컬 테스트 가능Interactive Queries상태 저장소 데이터를 외부에서..

DevOps/Kafka 2025.05.12

[실전 카프카 개발부터 운영까지] 6. 컨슈머의 내부 동작 원리와 구현

1. 컨슈머 오프셋 관리오프셋컨슈머가 읽은 메시지 위치를 나타내는 번호다음에 어디부터 읽을지 알 수 있음 __consumer_offest 토픽항목설명역할각 컨슈머 그룹이 어떤 파티션의 몇 번째 메시지까지 읽었는지 기록함포맷key: (group.id, topic, partition), value: offset파티션 수 조정offsets.topic.num.partitions (기본: 50)복제 수 조정offsets.topic.replication.factor (기본: 3 추천) 기본 동작컨슈머지정된 토픽의 메시지를 읽음읽은 메시지의 오프셋 정보를 __consumer_offest에 기록컨슈머 그룹컨슈머들의 오프셋 추적장애 시, 지정된 오프셋을 통해 복구 2. 그룹 코디네이터그룹 코디네이터컨슈머 그룹의 구성,..

DevOps/Kafka 2025.05.08

[실전 카프카 개발부터 운영까지] 5. 프로듀서의 내부 동작 원리와 구현

1. 파티셔너프로듀서가 메시지를 어느 파티션에 보낼지 결정하는 컴포넌트기본적으로 키 값을 해싱하여 파티션을 결정함하지만 키가 없으면 전략에 따라 파티션이 선택됨 주의사항동적으로 파티션이 증가할 경우, 기존의 키와 파티션의 매핑이 일치하지 않을 수 있음되도록이면 파티션 수를 변경하지 않는것이 권장됨 전략구분라운드 로빈 전략스티키 파티셔닝 전략전송 방식순차적으로 여러 파티션에 균등 분배하나의 파티션에 몰아서 일정량의 레코드를 채운 뒤 전송장점데이터가 파티션에 고르게 분산됨배치 전송이 빠르고 효율이 높음단점파티션별로 데이터가 얇게 퍼져 버퍼가 빨리 안 채워짐 파티션 간 데이터 분포가 고르지 않을 수 있음배치 효율낮음 (파티션별 최소 레코드 수 미달로 대기 → 비효율)높음 (한 파티션에 집중해 빠르게 배치 전송..

DevOps/Kafka 2025.05.07

[실전 카프카 개발부터 운영까지] 4. 카프카의 내부 동작 원리와 구현

고승범 님의 "실전 카프카 개발부터 운영까지" 책을 정리한 포스팅 입니다.1. 카프카 리플리케이션동작예제) 토픽 생성더보기/opt/bitnami/kafka/bin/kafka-topics.sh --create --topic topic_chat \--bootstrap-server localhost:9092 \--replication-factor 2 \--partitions 2 예제) 토픽 메시지 생성더보기/opt/bitnami/kafka/bin/kafka-console-producer.sh --topic topic_chat \ --bootstrap-server localhost:9092 예제) 토픽 조회더보기 /opt/bitnami/kafka/bin/kafka-topics.sh --topic topic_ch..

DevOps/Kafka 2025.05.06

[실전 카프카 개발부터 운영까지] 3. 카프카 기본 개념과 구조

고승범 님의 "실전 카프카 개발부터 운영까지" 책을 정리한 포스팅 입니다.1. 카프카 기초 다지기구성 요소정의핵심 특징비고/예시토픽메시지를 분류하는 이름메시지의 논리적 그룹화프로듀서-컨슈머 간 송수신 단위채팅 시스템, 로그 시스템 등파티션토픽을 나누는 단위병렬·분산 처리 가능 (1 컨슈머당 1 파티션 읽음)파티션 수 늘리기 가능 (줄이기 X)성능 향상이 목적세그먼트파티션 로그 파일을 나누는 단위일정 크기로 자동 분할됨메시지 순서 보장00000000000000000000.log (오프셋을 의미함)리플리케이션파티션을 브로커에 복제리더-팔로워 구조 (읽기/쓰기, 읽기)고가용성 (장애 복구)팩터 2: 유실 가능팩터 3: 유실 없음 예시) 토픽 생성더보기kafka-topics.sh --bootstrap-s..

DevOps/Kafka 2025.05.03

[실전 카프카 개발부터 운영까지] 1. 카프카 개요

고승범 님의 "실전 카프카 개발부터 운영까지" 책을 정리한 포스팅 입니다. 0. 배경링크드인 내부에서 발생하고 있는 이슈들을 해결하기 위해 만들었음문제설명데이터 폭증유저 증가로 데이터도 폭발적으로 증가 (기존 시스템으로는 감당 불가)이기종 간 연결 호환 안됨서로 다른 시스템/서비스 간 데이터 통신을 위해 복잡한 코드가 필요실시간 반영 어려움사용자 변경 사항을 빠르게 다른 시스템에 반영하기 어려움➡️ 이를 해결하기 위해 "Kafka" 개발 Kafka고성능 대용량 실시간 데이터 스트리밍 플랫폼어디선가 생긴 데이터를 여러 시스템에 실시간으로 빠르고 정확하게 보내줌 링크드인 실제 예시뉴스피드 서비스누군가 직장 정보를 변경하면 그 내용이 지인 뉴스피드에 즉시 뜨는 서비스➡️ 추천 시스템에도 즉시 반영➡️ 실시간 ..

DevOps/Kafka 2025.05.02