14주차 목요일, 69일차 Today I Learned
스트리밍 처리 (4)
: Kafka 기본 프로그래밍
✏️ 학습 내용
1. Client tool
Kafka에서 기본으로 제공해주는 Client tool 사용을 위해선 해당 브로커 노드 안으로 로그인하거나, 컴퓨터에 kafka 클라이언트 설치 후 Docker 안에 있는 kafka를 쓰도록 세팅해주면 된다.
1) 토픽 리스팅 및 토픽 삭제
docker ps를 통해 Broker의 컨테이너 ID 혹은 이름을 파악하여 로그인하고, 거기서 다양한 kafka 관련 클라이언트 툴을 사용 가능하다.
$ kafka-topics --bootstrap-server kafka1:9092 --list
$ kafka-topics --bootstrap-server kafka1:9092 --delete --topic topic_test
2) Console 에서 프로듀서 및 컨슈머 실습
Command line 통해서 Topic 만들고 Message 생성 가능하다.
$ kafka-console-producer --bootstrap-server kafka1:9092 --topic test_console
$ kafka-console-consumer --bootstrap-server kafka1:9092 --topic
2. 프로듀서와 컨슈머
Topic 생성 시 다수의 파티션이나 복제본을 주려면, 먼저 KafkaAdminClient 오브젝트를 생성하고 create_topics 함수로 Topic을 추가하여 메세지를 작성해야 한다.
Topic 이름을 KafkaConsumer의 첫 번째 인자로 지정 혹은 나중에 별도로 subscribe를 호출해서 지정할 수 있다. 컨슈머가 보통 하나의 토픽에서 데이터를 읽어오는데, 하나의 토픽은 다수의 파티션으로 구성되어 있다. 그렇다면 컨슈머가 다수의 파티션들로 구성된 토픽으로부터 읽어야한다면, 일단 파티션에 컨슈머를 나누어주고 하나의 컨슈머가 다수의 파티션을 책임진다.
3. ksqlDB
Topic 데이터를 SQL을 사용해서 접근할 수 있다. ksqlDB를 쓰는 방법은 2가지가 있다.
- REST API를 ksqlDB 서버에 보냄으로써 연결되어 있는 kafka 클러스터의 토픽들을 마치 SQL의 테이블이나 뷰처럼 처리
- ksql이라는 커맨드 유틸리티를 사용
💡 배운 점
- kafka가 기본으로 제공해주는 client tool을 사용해보았다.
- 토픽 리스팅, 토픽 삭제, 콘솔에서 간단하게 토픽 만들고 메세지 생성 및 소비해보기
- Topic 파라미터 설정을 보았다.
- Consumer 옵션을 살펴보았다.
- 방법 2가지
- 메세지 전달 방식 3가지
- ksqlDB를 사용해보았다.
☁️ 소감
Kafka 개념에 대해 배운 후 이번에는 기본 프로그래밍에 대해서 배웠다. 데모가 여러 개여서 깔끔하게 한 번 정리할 필요가 있을 것 같다.
'Data Engineering > grepp 데브코스 : TIL' 카테고리의 다른 글
[TIL_2024.01.29-02.02] 머신러닝 : ML E2E, 기초개념, 기초선형대수, 확률기초/분포, 선형회귀/분포 (0) | 2024.02.26 |
---|---|
[TIL_2024.01.26] 스트리밍 처리 (5) : Spark Streaming (1) | 2024.02.26 |
[TIL_2024.01.24] 스트리밍 처리 (3) : Kafka 소개 (0) | 2024.02.26 |
[TIL_2024.01.23] 스트리밍 처리 (2) : Udemy 추천 엔진 발전 여정 (0) | 2024.02.26 |
[TIL_2024.01.22] 스트리밍 처리 (1) : 실시간 데이처 처리 (2) | 2024.02.26 |