ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Apache Kafka 요약
    기록해야 기억한다/OSS(Open Source Software) 2020. 11. 14. 22:58
    SMALL

    kafka는 disk 기반 분산 메시징 시스템


    기본 개념

    · publish-subscribe 모델로 동작
    · producer(발행), consumer(소비), broker(중개) 로 구성됨
    · 메시지는 topic 이라는 기준으로 관리되고 topic을 발행하고 중개하여 소비하는 구조를 가짐
    · topic은 세부적으로 partition 으로 분산 저장되고 해당 topic은 partition ID + offset 값으로 식별됨
    · 분산환경으로 구성되어 broker 들이 클러스터로 구성되어 동작하도록 되어 있고 broker 가 단 한개이더라도 클러스터로 동작
    · 범용시스템에서 제공하는 기능들은 기대하면 안되고 TCP 기반으로 오버헤드를 감소시켜 동작
    · in memory 가 아닌 disk에 메시지를 저장하기에 영속성을 확보했고 메모리 방식에 비해 disk가 가지는 여러 단점들을 zero-copy, OS 페이지 캐시등을 이용해 감소시킴
    · 여느 메시징과 다르게 broker 가  consumer 에서 push하지 않고 consumer 가 자신이 필요한만큼(처리가능한 만큼) broker 로부터 pulling 해서 처리 - 해당 특징으로 batch 성의 소비도 가능
    · 이외에 consumer group 등의 topic의 액세스 관련 개념들이 존재
    · 기본적으로 broker의 관리는 zookeeper 에 의존하여 동작


    사이트를 통해 다운로드

     

    Apache Kafka

    Apache Kafka: A Distributed Streaming Platform.

    kafka.apache.org

    1. 서버 실행
    · zookeeper 서버 : kafka 내부에 있는 zookeeper 포함. 외부 zookeeper 를 이용해도 무관

    - kafka_2.xxxx.tgz 압축해제
    - 해당 경로로 이동
      (properties 를 수정하지 않고 그대로 기동)
    
    > .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
    

    · kafka 서버

    > .\bin\windows\kafka-server-start.sh .\config\server.properties

     

    2. Topic 생성
    - Partition 1개, 1 replica 을 가진 "bjlee_test" topic 명으로 생성
    - tmp\kafka-logs 폴더에서 파티션정보를 확인할 수 있다.
    - 생성된 topic은  --alter 옵션을 통해 변경가능. 단, partition/replica 는 변경 불가능. 기본설정을 운영환경에 적절하게 설정필요

    > .\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic bjlee_test Created topic "bjlee_test".

    3. 메시지 전송
    - 테스트용도로 사용

    > .\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic bjlee_test This is a message This is another message

    4. consumer 시작
    - 테스트용도로 사용
    - --from-beginning 옵션을 통해 consumer 가 언제 시작되던 topic 기준으로 발행된 메시지는 disk에 저장되어 읽어 올 수 있다.

    > .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic bjlee_test --from-beginning This is a message This is another message
    반응형
    LIST

    댓글

Designed by Tistory.