토픽 생성
# 토픽 생성
# bin/kafka-topics.sh --bootstrap-server <kakfa 주소> --create --topic <토픽명>
$ bin/kafka-topics.sh \
--bootstrap-server localhost:9092 \
--create \
--topic email.send
토픽 조회
# 토픽 전체 조회
# bin/kafka-topics.sh --bootstrap-server <kakfa 주소> --list
$ bin/kafka-topics.sh \
--bootstrap-server localhost:9092 \
--list
# 특정 토픽 세부 정보 조회
# bin/kafka-topics.sh --bootstrap-server <kakfa 주소> --describe --topic <토픽명>
$ bin/kafka-topics.sh \
--bootstrap-server localhost:9092 \
--describe --topic email.send
토픽 삭제
# 토픽 삭제
# bin/kafka-topics.sh --bootstrap-server <kafka 주소> --delete --topic <토픽명>
$ bin/kafka-topics.sh \
--bootstrap-server localhost:9092 \
--delete --topic email.send
# 잘 삭제됐는 지 확인하기
$ bin/kafka-topics.sh \
--bootstrap-server localhost:9092 \
--list
Kafka의 특정 토픽에 메시지 넣기(프로듀서 역할)
# email.send라는 토픽에 메시지 넣기
$ bin/kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic email.send
# 위 명령어 입력 후 넣을 메시지 내용 입력하고 Enter 누르기
hello1
hello2
hello3
# 입력 다 했으면 Ctlr + c로 입력 상태 종료하기
Kafka에서 메시지 조회하기
* 전통적인 메시지 큐(RabbitMQ, SQS)는 메시지를 꺼내서 읽어들이면 해당 메시지를 큐에서 제거하는 구조.
Kafka는 메시지를 읽기만하고 제거하지 않는 방식으로 작동하기때문에 같은 메시지를 여러 번 읽는게 가능하다.
# email.send라는 토픽에 있는 메시지 꺼내기
$ bin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic email.send \
--from-beginning
- --from-beginning: 토픽에 저장된 가장 처음 메시지부터 출력해온다.
[용어 정리]
- 컨슈머: 카프카의 메시지를 처리하는 주체
- 컨슈머 그룹: 1개 이상의 컨슈머를 하나의 그룹으로 묶은 단위
- 오프셋: 메시지의 순서를 나타내는 고유 번호 (0부터 시작)
컨슈머 그룹을 지정해서 메시지 읽기
# 컨슈머 그룹을 활용해 메시지 조회하기
$ bin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic email.send \
--from-beginning \
--group email-send-group
- --group 그룹명: 기존에 해당 컨슈머 그룹이 없었다면 생성하고 몇 번째까지 읽었는 지 오프셋 번호로 저장해둔다.
- --from-beginning (--group 옵션과 같이 사용했을 경우): 컨슈머 그룹의 오프셋 기록이 없으면 첫 메시지부터 읽고 오프셋 기록이 있으면 그 이후 오프셋(인덱스)부터 메시지를 읽는다.
컨슈머 그룹 생성 확인
# 컨슈머 그룹 전체 조회하기
$ bin/kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--list
특정 컨슈머 그룹 세부 정보 조회
# 컨슈머 그룹 세부 정보 조회하기
$ bin/kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--group email-send-group \
--describe
- 예) CURRENT-OFFSET이 4면 해당 그룹의 인덱스 0~3까지 읽었고 다음 읽을 오프셋은 4라는 의미
컨슈머 그룹 삭제
# 컨슈머 그룹 삭제
$ bin/kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--delete \
--group email-send-group
# 잘 삭제됐는 지 확인하기
$ bin/kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--list
'Development > Kafka' 카테고리의 다른 글
| 3. Spring Boot 실습 (0) | 2025.08.30 |
|---|---|
| 1. 카프카와 환경셋팅 (1) | 2025.08.30 |