Apache Kafka (1) - 다운로드 및 설치, 토픽 생성 및 삭제

Wondeok Kang (a.k.a. Wade)·2022년 4월 8일
1

Apache Kafka Study

목록 보기
1/2
post-thumbnail

1. 개요

회사 업무에 카프카를 도입해야하는 부분이 생겼다. 단순히 Spring을 이용하여 구축 되어있는 카프카에 접속, 프로듀싱 및 컨슈밍만 해보는것보다 직접 구축하여 여러가지 설정들을 직접 사용해보고자 한다. 스터디 개념으로 일련의 과정들을 정리해 놓는다.

2. 다운로드 및 설치

2-1. 다운로드 및 압축 해제

이번 스터디는 도커이미지를 활용하지 않고 공식 사이트에서 직접 다운받아 설치하여 사용해보려 한다.

Apache Kafka download : https://www.apache.org/dyn/closer.cgi

위 사이트에서 공식 버전을 다운로드 한다. 2022-04-09 기준 최신버전인 kafka_2.13-3.10.tgz 압축파일을 다운로드 & 압축 해제한다.

2-2. 주키퍼 실행

카프카는 주키퍼와 함께 실행되어야한다. 일단 주키퍼가 무엇인고..?
주키퍼는 분산 애플리케이션에서 안정적인 서비스를 할수 있도록 중앙에서 구성 및 관리, 그룹 관리, 동기화 등을 수행하는 코디네이션 시스템이라고 보면 된다. 카프카 외에도 여러 프로그램에서 사용된다.

주키퍼 실행 :

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > ./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

주키퍼 종료 :

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > ./bin/zookeeper-server-stop.sh

백그라운드로 실행대되록 -daemon 옵션을 주었다. 정상적으로 올라갔는지 확인해 보기위해 기본 포트로 조회해보니 정상적으로 Listening 하고 있는게 확인되었다.

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > netstat -an | grep 2181
tcp46      0      0  *.2181                 *.*                    LISTEN

2-3. 카프카 실행

주키퍼가 정상적으로 올라갔으니 카프카를 실행한다. 역시 백그라운드로 수행되도록 주키퍼 실행시와 동일한 옵션을 부여했다.

카프카 실행:

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > ./bin/kafka-server-start.sh -daemon config/server.properties

카프카 종료 :

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > ./bin/kafka-server-stop.sh

역시 실행했으니 정상적으로 올라갔는지 확인해 보았다. 카프카의 기본 포트는 9092 이다.

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > netstat -an | grep 9092
tcp4       0      0  127.0.0.1.9092         127.0.0.1.53991        ESTABLISHED
tcp4       0      0  127.0.0.1.53991        127.0.0.1.9092         ESTABLISHED
tcp46      0      0  *.9092                 *.*                    LISTEN

3. 토픽

주키퍼와 카프카가 정상적으로 올라갔으니 실제 토픽을 생성하고 삭제 및 리스트 조회를 진행해본다.

3-1. 토픽 생성 및 삭제

기본적인 토픽 하나를 생성한다. 토픽 생성시 몇가지 옵션을 줄 수 있는데 옵션들은 다음과 같다.

--create : 생성 옵션
--topic : 토픽 이름
--bootstrap-server : 카프카 호스트
--partitions : 파티션 수
--replication-factor : 파티션의 replication-factor 수

토픽 생성 :

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > ./bin/kafka-topics.sh --create --topic deogicorgi-topic-1 --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
Created topic deogicorgi-topic-1.

토픽 삭제:

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > ./bin/kafka-topics.sh --delete --topic deogicorgi-topic-1 --bootstrap-server localhost:9092

토픽 리스트:

deogicorgi ~/Development/software/kafka_2.13-3.1.0 > ./bin/kafka-topics.sh --list --bootstrap-server localhost:9092
deogicorgi-topic-1

이어지는 포스트로 프로듀서 및 컨슈머를 실행하여 메시지를 발행 & 구독 하는 과정을 정리한다.

profile
최고의 개발도구는 기록과 구글링이다.

2개의 댓글

comment-user-thumbnail
2023년 3월 15일

kafka 토픽 생성이 안돼서 고생중이었는데 덕분에 잘 해결했습니다! 감사합니다😄
주키퍼가 돌고있는건지 아닌지 답답했는데, netstat 명령어로 확인하는 방법까지 알려주셔서 정말 많은 도움이 되었습니다.

1개의 답글