Skip to content

kafka command

qbsb147 edited this page Mar 21, 2026 · 1 revision

📡 Kafka & Kafka Connect Wiki Guide

Kafka 설치 및 스토리지 초기화

UUID 생성 및 스토리지 포맷

⚠️ 주의: 아래 명령어들은 Windows 환경 전용입니다.
Linux/Mac에서는 경로(.\bin\windows\)와 .bat 대신 ./bin/kafka-... 스크립트를 사용해야 합니다.

REM UUID 생성
.\bin\windows\kafka-storage.bat random-uuid

REM 스토리지 포맷 초기화 (KRaft 모드)
.\bin\windows\kafka-storage.bat format -t XXXXXXXXXXXXXXXX -c .\config\server.properties

💡 설명: Kafka KRaft 모드를 위한 브로커 스토리지 초기화 단계입니다.

명령어/옵션 의미
.\bin\windows\kafka-storage.bat Kafka KRaft 모드 스토리지 관리용 실행 스크립트
random-uuid 브로커 스토리지를 식별할 고유 UUID 생성
format 스토리지를 Kafka용으로 초기화 (기존 데이터 삭제 주의)
-t XXXXXXXXXXXXXXXX 생성한 UUID를 지정
-c .\config\server.properties Kafka 서버 설정 파일 경로 지정

Kafka 서버 및 Connect 실행

Kafka 브로커 실행

.\bin\windows\kafka-server-start.bat .\config\server.properties

Kafka Connect 실행 (Standalone 모드)

.\bin\windows\connect-standalone.bat .\config\connect-standalone.properties .\config\connect-example-source.properties
명령어/옵션 의미
.\bin\windows\kafka-server-start.bat Kafka 브로커 실행 스크립트
. \config\server.properties Kafka 브로커 설정 파일 경로 지정
.\bin\windows\connect-standalone.bat Kafka Connect Standalone 모드 실행 스크립트
. \config\connect-standalone.properties Connect 기본 설정 파일 경로 지정
. \config\connect-example-source.properties 커넥터별 설정 파일 (예: MySQL Source) 지정

토픽 관리

명령어/옵션 의미
.\bin\windows\kafka-topics.bat Kafka 토픽 관리용 스크립트 실행 (생성/조회/삭제 가능)
--bootstrap-server localhost:9092 연결할 Kafka 브로커 주소와 포트

토픽 목록 조회

.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --list

토픽 생성

.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --create --topic example_app.example_topic --partitions 1 --replication-factor 1
명령어/옵션 의미
--create 토픽 생성 명령
--topic example_app.example_topic 생성할 토픽 이름
--partitions 1 파티션 개수, 병렬 처리 단위
--replication-factor 1 토픽 데이터 복제본 수

토픽 상세 확인

.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --describe --topic example_app.example_topic

메시지 확인 (Consumer)

.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic example_app.example_topic --from-beginning
명령어/옵션 의미
.\bin\windows\kafka-console-consumer.bat 콘솔에서 Kafka 토픽 메시지를 읽는 스크립트
--from-beginning 토픽의 처음 메시지부터 읽기

커넥터 관리(Kafka Connect REST API)

커넥터 등록

curl -X POST -H "Content-Type: application/json" --data @connector-example.json http://localhost:8083/connectors
명령어/옵션 의미
curl 터미널에서 HTTP 요청을 보내는 명령어
-X POST POST 방식으로 요청 (데이터 등록/생성 시 사용)
-H "Content-Type: application/json" HTTP 헤더, JSON 형식 데이터 전송
--data @connector-example.json 전송할 JSON 파일 지정 (@는 파일에서 읽음)
http://localhost:8083/connectors Kafka Connect REST API 엔드포인트, 커넥터 등록 위치

등록된 커넥터 목록 조회

curl localhost:8083/connectors

커넥터 상태 확인

curl localhost:8083/connectors/example_server/status

커넥터 재시작

curl -X POST http://localhost:8083/connectors/example_server/restart
curl -X POST http://localhost:8083/connectors/example_server/tasks/0/restart

Kafka Connect → Kafka 브로커 → Consumer 흐름

sequenceDiagram
    participant MySQL
    participant Connect as Kafka Connect (8083)
    participant Broker as Kafka Broker (9092)
    participant Consumer

    MySQL->>Connect: CDC 이벤트 발생
    Connect->>Broker: 이벤트를 토픽으로 전송 (example_app.example_topic)
    Consumer->>Broker: 토픽에서 메시지 읽기
Loading

💡 설명:

  1. MySQL에서 변경 이벤트 발생
  2. Kafka Connect가 이벤트를 Kafka 브로커로 전송
  3. 브로커(9092)가 토픽에 메시지 저장
  4. 콘슈머가 토픽에서 메시지 확인

포트 역할 정리

포트 대상 역할
9092 Kafka 브로커 메시지 송수신, 토픽 관리
8083 Kafka Connect 커넥터 등록/상태관리/REST API

📡 이벤트 스트리밍

⚙️ 개발 환경 구축

Websocket

Kafka

Redis

Debezium

🧩 기능 구현

이벤트리스너(Spring)

Pub/Sub 기반 메세지 처리(Redis)

이벤트 스트리밍 처리(Kafka)

CDC(Debezium)

🧠 개념

🎯 설계 패턴

🏗️ 아키텍처

📚 기술 스택

Clone this wiki locally