1. 카프카의 기본 구성
- Zookeeper
: 카프카의 정상동작을 보장하기 위해 메타데이터를 관리하는 코디네이션(Broker의 Health Check 포함)
- Producer
: message 생산자
- Kafka Broker
: kafka 설치 서버
- Consumer
: message 소비자
- Partition
: 병렬처리를 위해 하나의 토픽을 분산 처리
- Topic
: Data 저장소
- Offset
: message 가 저장되는 위치(읽어오는 순서에 영향. FIFO)
1-1. Kafka 내 토픽 생성
- kafka-topics.sh 명령어를 이용하면 됨(Kafka기본 제공)
: 설치경로/kafka/bin/kafka-topic.sh --bootstrap-server kafka01:9092 --create --topic topictest --partitions 1 --replication-factor 3
( replication-factor : 하나의 message를 지정된 수만큼 Broker 내 복제, 개발 시 1개 구성, Stage 2개, 운영 환경 구성 시 3개로 구성하여 유실발생 없는 서비스 운영)
- 결과 print: Create topic topictest
1-2. producer message test
- 설치경로/kafka/bin/kafka-console-producer.sh -- bootstrap -server kafka01:9092 --topic topictest
- message 입력 : kafka test
1-3. consumer message test
- 설치경로/kafka/bin/kafka-console-consumer.sh -- bootstrap -server kafka01:9092 --topic topictest
- 위의 producer 에서 입력한 message 확인 가능 : kafka test
1-4. kafka-dump-log.sh
: 파티션 내 로그 파일 확인 용
2. Partition
- Topic 을 여러개로 분리, 병렬처리화 하는 기능
- LAG(producer message 발생 수 - consumer 처리 수) 의 수를 이용하여 Partition 수를 수정
3. Kafka 성능 관련
3-1. Page Cache
: Kafka 와 Disk 사이 메모리 영역활용하여 일부 cache처리하여 성능향상
3-2. 압축 전송
: producer 에서 data 전달 시 압축하여 전달 가능(snappy, gzip, lz4, zstd 등)
3-2. 배치 전송
: producer 에서 data 전달 시 batch 로 묶어서 전달 가능
4. Producer config
- bootstrap.servers : kafka cluster에 연결을 위한 host:port 정보
- client.dns.lookup
- acks
- buffer.memory
- compression.type
- enable.idempotence
- max.in.flight.requests.per.connection
- retries
- batch.size
- linger.ms
- transactional.id
'AMQP > Kafka' 카테고리의 다른 글
KRaft 사용하여 Kafka 컨테이너 띄우기 (0) | 2025.03.07 |
---|---|
카프카는 어떻게 빠른 속도를 보이는 것인가? ( Kafka Buffer Pool ) (0) | 2025.02.21 |
Kafka 세팅 docker compose yaml (2) | 2024.09.12 |