Kafka Kraft Mode 단일 서버에 구축하기

이선엽·2026년 2월 26일
post-thumbnail

Kafka

초기 서버 설계에는 없었는데, 커뮤니티를 만들면서 사용자 알림 데이터와 페이지 접속 이력을 남기기 위해 추가 하였습니다.

RabbitMQ도 선택지에 있었는데, 이것은 많이 사용해 봤지만 Kafka는 한 번도 사용해본 적이 없어서 적용하였습니다.

설치 환경은 Rocky Linux 10 입니다.

Kafka 설치

version: 2.13-4.1.1

클러스터가 아닌 단일 서버로 진행 합니다.

# 자바 21 설치
sudo rm -f /etc/yum.repos.d/adoptium.repo

# repo 추가
sudo tee /etc/yum.repos.d/adoptium.repo <<EOF
[Adoptium]
name=Adoptium
baseurl=https://packages.adoptium.net/artifactory/rpm/rhel/9/x86_64
enabled=1
gpgcheck=1
gpgkey=https://packages.adoptium.net/artifactory/api/gpg/key/public
EOF

# log.dir 디렉토리 생성
mkdir /home/kafka/kraft-combined-logs
sudo chmod 750 /home/kafka/kraft-combined-logs

# 캐시 날리기 및 설치
sudo dnf clean all
sudo dnf makecache
sudo dnf install temurin-21-jdk -y

# 클러스터 id 생성 - r5Gh_pP6Tf-L-wwH_aP4Vg
/bin/kafka-storage.sh random-uuid

# server.properties 수정
controller.quorum.voters=1@localhost:9093 // 이거는 없으면 추가
listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
advertised.listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
log.dirs=/home/kafka/kraft-combined-logs

# 메타데이터 초기화
bin/kafka-storage.sh format -t tr5Gh_pP6Tf-L-wwH_aP4Vg -c config/server.properties

# log, pid파일 생성
nohup /home/kafka/kafka_2.13-4.1.1/bin/kafka-server-start.sh /home/kafka/kafka_2.13-4.1.1/config/server.properties \
    > /home/kafka/kafka_2.13-4.1.1/kafka.log 2>&1 & echo $! > /home/kafka/kafka_2.13-4.1.1/kafka.pid

# kafka 실행
/home/kafka/eft-library-kafka/kafka.sh start

# 토픽 생성 -- 사용자 방문 이력과 커뮤니티 알림용 입니다.
/home/kafka/kafka_2.13-4.1.1/bin/kafka-topics.sh \
  --create \
  --topic web-logs-topic \
  --bootstrap-server localhost:9092 \
  --partitions 1 \
  --replication-factor 1 \
  --config retention.ms=86400000
/home/kafka/kafka_2.13-4.1.1/bin/kafka-topics.sh \
  --create \
  --topic user-notification \
  --bootstrap-server localhost:9092 \
  --partitions 3 \
  --replication-factor 1 \
  --config retention.ms=604800000

# 토픽 리스트 확인
/home/kafka/kafka_2.13-4.1.1/bin/kafka-topics.sh --list --bootstrap-server localhost:9092


# 활성화 후 pub 확인 - 사이트 돌아다니기
/home/kafka/kafka_2.13-4.1.1/bin/kafka-console-consumer.sh --topic web-logs-topic --from-beginning --bootstrap-server localhost:9092

기본 설정이 kraft여서 간단히 할 수 있었습니다.

Kafka 또한 restart 스크립트를 만들었는데, 이후의 포스트에 작성하겠습니다.

profile
만드는게 좋아

0개의 댓글