Kafka

오민석·2021년 7월 24일
0

Kafka란?

메세지(텍스트, 객체, json, xml 등) 브로커(서버)
Consumer, Producer 나누어서 안전하게 메세지 전달

RabitMQ와 차이

RabitMQ둘 다 다른 메세제 다른 시스템 전달 하지만 용량/안정성 측면에서 대용량 시스템에서 Kafka가 더 많이 쓰임

장점

  • 모든 시스템으로 데이터를 실시간으로 전송하여 처리할 수 있는 시스템
    데이터가 많아져도 확장이 용이한 시스템

  • 실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연시간

  • End to End 연결방식의 아키텍처
  • 데이터 연동 복잡성
  • 확장 어려움

  • Producer/Consumer 분리
  • 메세지를 여러 Consumer에게 전달가능
  • Scale-out(클러스터링 구조로 여러 개 서버로 구성 가능)
  • 높은 처리량을 위한 메시지 최적화

  • 3대 이상 Broker Cluster 권장
  • Zookeeper(코디네이터)
    역할: 메타데이터(Broker ID, Controller ID 등)
  • n개 Broker 중 1대는 Controller 기능 수행
    Controller: 각 Broker에게 담당 파티션 할당 수행 및 모니터링

간단한 Producer/Consumer 및 Topic 등록

Zookeeper 실행

.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

Kafka 실행

.\bin\windows\kafka-server-start.bat .\config\server.properties

Topic 리스트 확인

.\bin\kafka-console-consumer.sh --bootstrap-server localhost:9092 --list

Topic 추가

.\bin\kafka-topics.sh --bootstrap-server localhost:9092 --create --topic quickstar-events --partitions 1

Consumer 등록

.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic quickstart-events --from-beginning

Producer 등록

.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic quickstart-events

0개의 댓글