로컬에서는 잘 되는데 ☘️

[Kafka] Quick Start

by youngjun._.

kafka 공식 docs Logo

 

실습 환경
- 💡 Java10 (Java 8이상 필수)
- 💡 Windows 10
- 💡 Git Bash
- 💡 Kafka 2.6.0

앞서 간단한 properties 설정도 모두 살펴보았고 실행하는 방법도 알아보았다.

이제 APACHE KAFKA QUICKSTART 공식문서를 따라 Kafka 기능을 사용해보자.

 

1. 빠르게 zookeeper, kafka server 실행

# yj_park@yjpark MINGW64 /c/dev/kafka_2.13-2.6.0

# zookeeper 실행
$ bin/windows/zookeeper-server-start.bat config/zookeeper.properties

# kafka server 실행
$ bin/windows/kafka-server-start.bat config/server.properties

 

2. Topic 생성하기

용어는 이전 포스팅에서 살펴보았으니 간단한 원리만 살펴보자.

  • Kafka는 이벤트(또는 메시지)를 읽고, 쓰고, 저장하고, 처리 할 수 있는 분산 이벤트 스트리밍 플랫폼
  • 이벤트 예시(배송 주문, 센서, 결제 처리, App Push 알림, 메일 보내기 등)
  • 이런 이벤트를 Topic 별로 구성 및 저장!
간단하게 Topic은 파일 시스템의 폴더, Event는 파일로 이해하면 편하다.
그러니, Event(파일) 생성 전에 Topic(폴더)을 먼저 생성해보자.😊

 

# yj_park@yjpark MINGW64 /c/dev/kafka_2.13-2.6.0
$ .\bin\windows\kafka-topics.bat --create --topic quickstart-events --bootstrap-server localhost:9092

 

  1. --create
    • 새로운 토픽을 만들 때 사용하는 옵션
  1. --topic
    • create, alter, describe, delete 옵션에 사용할 Topic 명
    • Topic 이름은 큰따옴표(")로 묶을 수 있고, 정규식 사용이 가능( \로 escape)
  1. --bootstrap-server
    • 연결할 Kafka 서버( host:port )
    • 이 옵션이 추가되면, 직접 Zookeeper에 연결하지 않아도 된다.
  1. (추가옵션) --replication-factor
    • Partition 복제 수
    • 기본 값은 server.properties 파일에서 default.replication.factor 항목으로 설정 가능( 설정되어 있지 않을 경우, 추가 작성)
  1. (추가옵션) --partitions
    • Topic이 생성되거나 변경될 때의 Partition 수
    • 기본 값은 server.properties 파일에서 num.partitions 항목으로 설정 가능

 

2-1. Topic 생성 옵션 확인하기

--help 옵션

💡 더 자세한 Topic 관련 옵션을 확인하려면 help 명령어를 입력해보자.
# yj_park@yjpark MINGW64 /c/dev/kafka_2.13-2.6.0
$ .\bin\windows\kafka-topics.bat --help

 

2-2. 현재 사용 정보 확인하기

--describe 옵션

  • 새로운 Topic의 PartitionCount와 같은 세부 정보 표시하는 예시
$ .\bin\windows\kafka-topics.bat --describe --topic quickstart-events --bootstrap-server localhost:9092
Topic:quickstart-events  PartitionCount:1    ReplicationFactor:1 Configs:
    Topic: quickstart-events Partition: 0    Leader: 0   Replicas: 0 Isr: 0

 

2-3. Topic 목록 확인하기

--list 옵션

  • 사용 가능한 Topic 목록을 확인할 수 있다.
$ .\bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092

 

2-4. Topic 삭제하기

--delete 옵션

  • Topic을 삭제하려면 server.properties 파일에서 delete.topic.enable=true 설정을 추가해줘야 한다. (서버 재시작 필요)
$ .\bin\windows\kafka-topics.bat --delete --topic quickstart-events --bootstrap-server localhost:9092

 

3. Producer

3-1. Event(메시지) 생성하기

 

Topic을 생성했으니 Event를 만들어보자!

  • Kafka 클라이언트는 Event를 읽거나 쓸 때 네트워크를 통해 Kafka Broker와 통신한다.
  • Event가 수신되면 Broker는 Event를 저장
💡 Producer는 Kafka Queue에 정보를 저장해준다.
Message(= Event)를 만들어서 Topic으로 보내보자.
Broker는 Kafka 애플리케이션이 설치되어 있는 서버 또는 노드이다.
$ .\bin\windows\kafka-console-producer.bat --topic quickstart-events --bootstrap-server localhost:9092 
> This is my first event
> jun108059
  • 메시지 두개가 생성됐다.
  • 종료하려면 ctrl + c 를 누르면 된다.

 

3-2. Producer 관련 옵션 한번에 보기

--help 옵션

$ .\bin\windows\kafka-console-producer.bat --help

 

 

4. Consumer

4-1. Event(메시지) 읽기(소비하기)

  • 생성된 메시지를 옵션을 통해 여러가지 방법으로 소비할 수 있다.
$ .\bin\windows\kafka-console-consumer.bat --topic quickstart-events --from-beginning --bootstrap-server localhost:9092 
This is my first event
jun108059

--from-beginning 옵션

  • Consumer에게 설정된 offset이 없으므로 가장 최신의 메시지 대신 가장 먼저 도착한 메시지부터 읽도록 하는 옵션

 

 

4-2. Consumer 관련 옵션 한번에 보기

--help 옵션

$ .\bin\windows\kafka-console-consumer.bat --help

 

Kafka에서 간단하게 Topic을 만들고 Event를 생성하고 소비해보았다.

이제 Spring boot에 연동해서 Kafka를 사용하는 포스팅을 할 예정이다.

 

Reference

             

'BigData > Kafka' 카테고리의 다른 글

로컬에 Docker 기반 Kafka 서버 구축하고 테스트  (0) 2022.08.06
[Kafka] Server 설정하기  (0) 2020.11.25
[Kafka] ZooKeeper 설정  (1) 2020.11.24
[Kafka] 설치하고 실행해보기  (0) 2020.11.23
Kafka란?  (0) 2020.10.13

블로그의 정보

개발하는만두

youngjun._.

활동하기