Kafka 실행

ezi·2024년 3월 19일

  • Topic 
    Broker에서 데이터의 발행/소비 처리를 위한 저장소 producer와 consumer가 소통을 하는 채널
  • Kafka Broker 
    카프카의 서비스 인스턴스로서, 다수의 Broker 클러스터로 구성하고 Topic 생성되는 물리적 서버
  • Kafka Producer 
    Broker의 특정 Topic 데이터를 전송(발행)하는 역할로서 애플리케이션에서 카프카 라이브러리를 이용해 구현 메세지를 보내는 역활
  • Kafka Consumer 
    Broker의 특정 Topic에서 데이터를 수신(소비)하는 역할로서 애플리케이션에서 카프카 라이브러리를 이용해 구현 메세지를 받는 역활
  • Kafka Partition
    실제 디스크에 어떻게 저장이 되는지 가르는 기준 producer로 부터 데이터가 오면 topic 내 partition에 저장
  • Kafka Message
    • 카프카의 메시지는 Byte의 배열
    • 흔히 단순 String, JSON이나 Avro 사용
    • 카프카 메시지의 크기에는 제한이 없다
    ◦ 하지만 성능을 위해 작게 유지하는것을 추천
    ◦ 데이터는 사용자가 지정한 시간만큼 저장한다 (Retention Period)
    ◦ Topic별로 지정도 가능
    ◦ Consumer가 데이터를 받아가고 나서도 데이터는 저장된다• Retention Period가 지나면 데이터는 자동으로 삭제
  • Kafka Offset 
    보내진 메세지는 offset을 가짐 메세지 정렬 순서
  • Kafka Consumer Group
    Kafka Consumer Group  Consumer들은 그룹을 이룰 수 있음
  • Kafka Cluster
    고가용성이나 확장성을 이루기 위해서 kafka는 broker가 여러 개로 나뉘어서 하나의 토픽을 서빙 하나의 토픽이 여러 개의 브로커 하나의 브로커에 여러 개의 토픽
  • Zookeeper
    kafka cluster의 여러 요소들을 설정하는데 사용

주키퍼 띄우고 > 브로커(카프카 서버) 띄우고 > 프로듀서 실행 > 메세지 보냄 > 컨슈머 실행 > 메세지 확인

  1. 주키퍼 띄움

    ./bin/zookeeper-server-start ./config/zookeeper.properties

    bin 파일에 있는 주키퍼 서버 실행, config 파일에 있는 주키퍼 프로퍼티스를 참고하여

  2. 브로커 띄움

    ./bin/kafka-server-start.sh ./config/server.properties

    bin 파일에 있는 카프카 서버 실행, config 파일에 있는 서버 프로퍼티스를 참고하여

  3. 프로듀서 실행

    ./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my-topic

    bin 파일에 있는 카프카 콘솔 프로듀서 실행
    부트스트랩 서버를 localhost:9092로 설정
    토픽은 my-topic으로 쏠거다

    • my-topic 이라는 토픽을 만든적이 없는데?
      없으면 알아서 생성해줌

      알아서 생성해주는거 싫은데 ?
      서버 프로퍼티스에서 자동 설정 막을 수 있음
  1. 컨슈머 실행

    ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic

    bin 파일에 있는 카프카 콘솔 컨슈머 실행
    부트스트랩 서버를 localhost:9092로 설정
    토픽은 my-topic으로 설정해서 볼거다

프로듀서에서 쏘면 컨슈머에서 바로 확인 가능

profile
차곡차곡

0개의 댓글