학습 내용
kafka CLI Tool 접근 방법
- docker ps로 Broker의 Container ID 파악
- 해당 컨테이너로 로그인
=> docker exec -it Broker_Container_ID sh
- 다양한 클라이언트 툴 사용가능
- kafka-topics : Kafka-topics --bootstrap-server kafka1:9092 --list
- kafka-configs
- kafka-console-consumer : Command line을 통해 Topic에서 Message 읽기가 가능하다.
- kafka-console-producer : Command line을 통해 Topic을 만들고 Message생성이 가능하다.
- kafka-console-producer --bootstrap-server kafka1:9092 --topic test_console
Kafka Producer 파라미터

Kafka Producer 동작

Kafka Consumer 파라미터

Consumer가 다수의 Partitions들로부터 읽어 오는 방법
- Consumer가 하나이고 다수의 Partitions들로 구성된 Topic으로부터 읽어야한다면 ?
- Consumer는 각 Partition들로부터 라운드 로빈 형태로 하나씩 읽게 됨
- 병렬성이 떨어지고 데이터 생산 속도에 따라 Backpressure가 심해질 수 있다.
- Consumer Group을 통해 어느정도 해결가능
- 한 프로세스에서 다수의 Topic을 읽는 것 가능
- Topic 수만큼 KafkaConsumer 인스턴스를 생성하고 별도의 Group ID와 Client ID를 지정해야한다.
Consumer Group이란?
- Consumer가 Topic을 읽기 시작하면 해당 Topic내 일부 Partition들이 자동으로 할당됨
- Consumer의 수보다 Partition의 가 더 많은 경우, Partition은 라운드 로빈 방식으로 Consumer들에게 할당됨
- 이를 통해 데이터 소비 병렬성을 늘리고 Backpressure를 경감
- Consumer가 일부 중단되더라도 계속해서 데이터 처리 가능
- Consumer Group Rebalancing
- 기존 Consumer가 무슨 이유로 사라지거나 새로운 Consumer가 Group에 참여하는 경우 Partition들이 다시 지정이 되어야한다.
- 이를 Consumer Group Rebalancing이라고 부르며 Kafka에서 알아서 수행해준다.
ksqlDB
- REST API나 ksql 클라이언트 툴을 사용해서 Topic을 테이블처럼 SQL로 조작
'데브코스' 카테고리의 다른 글
데이터 엔지니어링 66일차 TIL (0) | 2024.07.02 |
---|---|
데이터 엔지니어링 65일차 TIL (0) | 2024.06.30 |
데이터 엔지니어링 63일차 TIL (0) | 2024.06.30 |
데이터 엔지니어링 62일차 TIL (0) | 2024.06.30 |
데이터 엔지니어링 61일차 TIL (1) | 2024.06.30 |