본문 바로가기
AMQP/Kafka

Kafka 세팅 시 참고할 만한 내용정리

by Bill Lab 2024. 10. 1.
728x90

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

728x90