본문 바로가기
IT 기술/MiddleWare

[kafka] kafka 연습

by Geunny 2022. 10. 26.
반응형

kafka Download site

https://kafka.apache.org/

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

 

 

홈페이지에서 Download kafka 선택하여 필요한 버전의 kafka 다운로드

 

 Mac 기준 tar 를 이용하여 다운로드 받은 파일 압축해제.

 

폴더구조

 

/bin 폴더 : kafka 실행파일 존재함.

/config 폴더 : kafka 실행시 필요한 설정값 존재함.

 

스프링에서 카프카를 사용하기 전 어떤 방식으로 MQ 로 동작하는지 확인하기 위한 실습.

 

실행 구조.

 

1. zookeeper-server 를 통해 kafka 코디네이터 서버를 기동. -> kafka 서버를 관리해줌

2. kafka-server 를 통해 kafka 서버를 기동시킴.

3. kafka-topics.sh 를 통해 topic 을 생성

4. kafka-console-producer.sh 를 사용하여 프로듀서 기동. 기동시 사용할 topic 을 지정함.

   -> console 을 통해 메시지를 보낼수 있는 상태로 주어짐.

5. kafka-console-consumer.sh 를 통해 topic 을 구독함.

   -> topic을 구독하면 해당 producer에서 메시지 생성되면 해당 메시지를 소비함.

 

 

(모든 실습은 cmd 에서 kafka 압축 파일을 푼 홈 디렉토리에서 진행함.)

1. zookeeper-server 실행 

실행시 config 파일 위치도 입력

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

 

zookeeper서버는 2181 포트로 실행

2. kafka server 실행

실행시 config 파일 위치도 입력

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

kafka-server 는 9092 포트로 실행

 

3. topic 생성

topic 을 지정하여 producer를 실행할 수 있다.

--bootstrap-server 'kafka서버정보' --create --topic '토픽이름' --partitions '파티션갯수'

./bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic quickstart-events --partitions 1

 

4. producer 실행

 실행시 kafka 서버와 topic 을 지정함

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic quickstart-events

producer를 실행하면 입력할수 있는 상태로 지정됨

5. consumer 실행

 producer 와 마찬가지로 서버정보와 topic 을 지정하여 실행함. consume 옵션도 지정할 수 있음.

아래에선 --from-beginning 을 통해 첫 메시지부터 모두 출력되도록 사용함.

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

--from-beginnig 옵션을 통해 토픽에 있던 이전 메시지도 모두 출력된 모습

 

 

6. producer 를 통해 메시지 전달

좌: producer 우:consumer

 

댓글