오픈소스

Kafka 설치 및 사용 방법

토끼C 2023. 6. 28. 12:17
반응형

1. Kafka 환경 설정

Kafka 서비스 연동을 위해 Kafka가 설치된 서버를 준비한다.

 

(1) Kafka 설치

본 가이드는 kafka_2.13-3.1.0.tgz 버전을 기준으로 작성하였다. > Kafka 다운로드(kafka_2.13-3.1.0.tgz)

$ tar -xzf kafka_2.13-3.1.0.tgz
$ cd kafka_2.13-3.1.0

 

(2) server.properties 설정

config/server.properties 파일을 열어 브로커 서버가 바인딩할 주소를 설정한다. listeners는 카프카 브로커가 내부적으로 바인딩하는 주소이며, advertised.listeners는 카프카 프로듀서, 컨슈머에게 노출할 주소, 즉 외부에서 접속할 주소를 설정한다.

예시 설정은 다음과 같다.

# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
listeners=PLAINTEXT://:9092

# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured.  Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://192.168.x.xxx:9092

 

(3) ZooKeeper 실행

ZooKeeper란 카프카 클러스트의 meta data를 저장하는 서버로 Broker를 실행하려면 필수로 떠있어야 한다.

bin/zookeeper-server-start.sh config/zookeeper.properties

Zookeeper가 실행되었다면 Kafka 서버를 실행시킨다.

bin/kafka-server-start.sh config/server.properties

 

(4) 토픽 생성

다음은 testTopic이라는 이름의 토픽을 생성하는 예시이다.

bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic testTopic

다음은 토픽에 메시지를 작성(Produce)하는 예시이다.

bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic testTopic
>Hello
>My Name is Kafka

다음은 토픽의 메시지를 읽어오는(Subscribe) 예시이다.

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning

 

다음은 토픽에 consumer group을 지정할 수 있다.

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 -group test-consumer-group  --from-beginning --topic testTopic

 

다음은 consumer group을 조회하는 예시이다.

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test-consumer-group --describe

 

반응형