Java Gradle 환경에서 Kafka 서버를 구축하는 방법을 단계별로 자세히 정리하면 다음과 같습니다. 여기서는 Apache Kafka 공식 배포판(3.x 버전 기준) 설치 및 단일 노드(KRaft 모드) 구성을 기준으로 설명합니다.
Kafka 서버 구축 단계별 안내
1. Java 환경 준비
-
Kafka는 Java 기반으로 동작하므로 JDK가 필수입니다.
-
OpenJDK 11 이상을 설치합니다.
bashsudo apt update
sudo apt install openjdk-11-jdk
-
설치 후 환경변수도 설정합니다.
bashecho "export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))" >> ~/.bashrc
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
2. Kafka 다운로드 및 설치
-
Apache Kafka 공식 웹사이트에서 원하는 버전의 Kafka 패키지를 다운로드합니다.
bashwget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.tgz
-
다운로드한 tarball의 압축을 풉니다.
bashtar -xzf kafka_2.13-3.9.0.tgz
-
편의를 위해 심볼릭 링크를 만듭니다.
bashln -s kafka_2.13-3.9.0 kafka
cd kafka
3. Kafka KRaft 모드 클러스터 ID 생성
-
Kafka 3.3.0부터 주키퍼 없이 Kafka만 단일 노드 클러스터로 실행할 수 있는 KRaft 모드를 지원합니다.
-
클러스터 ID를 생성합니다.
bashKAFKA_CLUSTER_ID=$(bin/kafka-storage.sh random-uuid)
echo $KAFKA_CLUSTER_ID
4. Kafka 설정 파일 수정
-
config/kraft/server.properties파일을 편집합니다. -
다음 주요 항목을 수정합니다.
-
node.id: 브로커의 고유 아이디 (예: 1) -
process.roles:broker,controller입력 -
controller.quorum.voters:1@localhost:9093(노드ID@호스트:포트) -
listeners:PLAINTEXT://localhost:9092 -
log.dirs: 로그 저장 경로 (예:/tmp/kraft-combined-logs) -
cluster.id: 앞서 생성한 클러스터 ID를 입력
-
-
설정 완료 후 저장합니다.
5. Kafka 스토리지 초기화
-
Kafka 브로커가 로그를 저장할 디렉토리를 초기화합니다.
bashbin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties
6. Kafka 브로커 실행

-
Kafka 서버를 백그라운드 데몬으로 실행합니다.
bashbin/kafka-server-start.sh -daemon config/kraft/server.properties
-
실행 중인지 확인하려면
jps(Java 프로세스 확인 도구)를 사용할 수 있습니다.
7. Kafka 토픽 생성
-
테스트용 토픽을 생성합니다.
bashbin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1
8. Kafka 테스트 (Producer/Consumer)
-
Kafka 설치 디렉토리 내
bin폴더에서 제공하는 쉘 스크립트로 메시지 보내기/받기 테스트 가능합니다. -
Java 클라이언트에서 메시지 쓰기/읽기도 위 샘플 코드처럼 진행할 수 있습니다.
참고
-
주키퍼 없이 Kafka 자체로 클러스터 관리하는 KRaft 모드를 권장합니다.
-
다중 노드 클러스터 구성 시
controller.quorum.voters에 각 노드 정보를 추가하고, 각 서버 설정파일별로 노드 ID, IP/포트 등을 다르게 설정합니다. -
브로커가 실행중일 때 토픽 생성, 메시지 송수신 작업을 수행하세요.
원문 설명과 명령어 예시는 최신 Kafka 3.9.0 버전을 기준으로 하며, Ubuntu 리눅스 환경에서 진행하는 절차입니다.