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