Kafka 6

[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상태 저장소 데이터를 외부에서..

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. 그룹 코디네이터그룹 코디네이터컨슈머 그룹의 구성,..

Kafka 2025.05.08

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

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

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..

Kafka 2025.05.06

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

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

Kafka 2025.05.03

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

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

Kafka 2025.05.02