분류 전체보기 1341

Ch02. Apache Kafka 심화 개념 및 이해 - Exactly Once Semantics(EOS2)

Transaction을 구현하기 위해, 몇 가지 새로운 개념들이 도입 Transaction Coordinator : Consumer Group Coordinator와 비슷하게, 각 Producer에게는 Transaction Coordinator가 할당되며, PID 할당 및 Transaction 관리의 모든 로직을 수행 Transaction Log : 새로운 Internal Kafka Topic으로써, Consumer Offset Topic과 유사하게, 모든 Transaction의 영구적이고 복제된 Record를 저장하는 Transaction Coordinator의 상태 저장소 TransactionalId : Producer를 고유하게 식별하기 위해 사용되며, 동일한 TransactionalId를 가진 P..

Ch02. Apache Kafka 심화 개념 및 이해 - Exactly Once Semantics(EOS)

Delivery Semantics 최대한번, 최소한번, 정확히 한번 At-Most-Once Semantics(최대 한번) 확인 시간이 초과되거나 오류가 반환될 때 Producer가 재시도하지 않으면, 메시지가 Kafka Topic에 기록되지 않아 Consumer 에게 전달되지 않을 수 있음 중복 가능성을 피하기 위해 때때로 메시지가 전달되지 않을 수 있음을 허용 At-Least-Once Semantics(최소 한번) Producer가 Kafka Broker로부터 ack를 수신하고 acks=all이면 메시지가 Kafka Topic에 최소 한 번 작성되었음을 의미함 그러나 ack가 시간 초과되거나 오류를 수신하면 메시지가 Kafka Topic에 기록되지 않았다고 가정하고 메시지 전송을 다시 시도할 수 있음 ..

Ch02. Apache Kafka 심화 개념 및 이해 - Kafka Log File

Partition은 Broker들에 분산되며, 각 Partition은 Segment File들로 구성됨 Rolling Strategy : log.segment.bytes(default 1 GB), log.roll.hours(default 168 hours) Kafka Log Segment File Directory 각 Broker의 log.dirs 파라미터로 정의 log.dirs=/data/kafka/kafka-log-a,/data/kafka/kafka-log-b,/data/kafka/kafka-log-c Kafka Log Segment File은 Data File이라고 부르기도 함 Segment File이 생성되는 위치는 각 Broker의 server.properties 파일 안에서 log.dirs 파..

Ch02. Apache Kafka 심화 개념 및 이해 - Partition Assignment Strategy

Consumer의 설정 파라미터 중에서 partition.assignment.strategy로 할당 방식 조정 org.apache.kafka.clients.consumer.RangeAssignor: Topic별로 작동하는 Default Assignor org.apache.kafka.clients.consumer.RoundRobinAssignor: Round Robin 방식으로 Consumer에게 Partition을 할당 org.apache.kafka.clients.consumer.StickyAssignor: 최대한 많은 기존 Partition 할당을 유지하면서 최대 균형을 이루는 할당을 보장 org.apache.kafka.clients.consumer.CooperativeStickyAssignor: 동일..

Ch01. Kafka 설치와 설정 - Kafka 운영해 보기(Kafka Burrow)

https://github.com/linkedin/Burrow GitHub - linkedin/Burrow: Kafka Consumer Lag Checking Kafka Consumer Lag Checking. Contribute to linkedin/Burrow development by creating an account on GitHub. github.com 카프카를 제작한 링크드인에서 만들었으며, 사용자가 특별한 임계치를 정하지 않아도 카프카 헬스체크를 할 수 있다. GO를 사전에 먼저 설치해야한다. brew install go go/binary 파일이 생긴다. go mod tidy go install burrow.toml 파일을 Go/bin/Burrow 에서 실행 설정을 하면 된다. GOPATH..

Ch01. Kafka 설치와 설정 - Kafka 운영해 보기(AKHQ)

# kafka topic 생성 ./kafka-topics --bootstrap-server localhost:19092 --create --topic fastcampus --partitions 20 --replication-factor 3 # kafka에 생성된 토픽 리스트 확인 ./kafka-topics --bootstrap-server localhost:19092 --list # 특정 토픽의 파티션 수, 리플리카 수 등의 상세정보 확인 ./kafka-topics --describe --bootstrap-server localhost:19092 --topic fastcampus # kafka 콘솔 컨슈머 실행 ./kafka-console-consumer --bootstrap-server localhos..

Ch01. Kafka 설치와 설정 - Kafka 설정 꼼꼼히 들여

Kafka 설정 보기 https://github.com/apache/kafka/blob/trunk/config/server.properties GitHub - apache/kafka: Mirror of Apache Kafka Mirror of Apache Kafka. Contribute to apache/kafka development by creating an account on GitHub. github.com https://kafka.apache.org/documentation/#configuration Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org broker.id => 각 브로커마다 고유하게 가질 id ..

Ch01. Kafka 설치와 설정 - Kafka 클러스터 구축해보기

도커 컴포즈(Docker Compose)란? 단일 yaml 파일에 다수의 Docker Container를 기술하고 단 한 번의 명령어로 기술된 Container들을 모두 시작, 종료 시킬수 있는 Tool Command 시작: docker compose up 종료: docker compose down 사전준비 도커 데스크탑 설치 https://docs.docker.com/desktop/install/mac-install/ Install Docker Desktop on Mac docs.docker.com 도커 컴포즈 설치 https://github.com/jingene/fastcampus_kafka_handson resource GitHub - jingene/fastcampus_kafka_handson Co..

Ch01. Kafka 설치와 설정 - Kafka 빠르게 설치해보기

Kafka 설치하기 https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org Scala 2.13에 압축된 버전으로 설치하기를 권장한다. Zookeeper 실행하기 카프카를 띄우기 위해서는 Zookeeper를 먼저 띄어야 한다. bin/zookeeper-server-start.sh config/zookeeper.properties 2181 Port로 Zookeeper가 떴는지 확인해야 한다. bin/zookeeper-shell.sh localhost:2181 해당 명령어로 Zookeeper 쉘에 접속할 수 있다. Broker 실행하기 vi 명령어로 Broker 설..

Ch01. Kafka 설치와 설정 - Kafka 간단 요약

Kafka의 종류 Kafka의 종류는 2가지 존재한다. Apache Kafka = 여러 추가 기능을 추가하여 제공하는 카프카 Confluent Kafka = LinkedIn에서 최초로 제공한 카프카 Kafka 활용사례 - 데이터 파이프라인 데이터 파이프라인(Data Pipeline)이란? 중간에 사람의 개입 없이 데이터를 오염, 중복, 유실과 같은 결함 없이 수집, 저장, ETL(Extract, Transform, Load)이 가능하도록 일련의 흐름을 만들어 주는 과정 이 데이터 파이프라인을 구축할 때 Kafka를 가장 많이 활용한다. Kafka 활용사례 - 시스템 모니터링 여러 언어별로 다양한 로그를 수집을 할 수 있는데, 이를 카프카를 이용해 쉽게 수집할 수 있게 한다. Kafka 활용사례 - 메시징..