- Zookeeper / Kafka / Producer - Consumer
- 총 4개의 shell이 필요
실행 순서는
- Zookeeper 실행
- Kafka 실행
- Producer Message 발행
- Consumer Message 수신
① Zookeeper 실행
- Kafka 파일이 있는 곳으로 이동하여 아래와 같은 명령어를 통해 실행
./bin/zookeeper-server-start.sh ./config/zookeeper.properties
→ port가 0.0.0.0:2181로 실행된 것을 확인할 수 있다.
② Kafka Server 실행
- Kafka 파일이 있는 곳으로 이동하여 아래와 같은 명령어를 통해 실행
./bin/kafka-server-start.sh ./config/server.properties
→ port가 0.0.0.0:9092로 실행된 것을 확인할 수 있다.
③ Kafka Topics 확인 및 생성
- 아래와 같은 명령어를 통해 확인할 수 있다.
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
아직 생성하지 않았기 때문에 Topic 생성 명령어를 통해 생성해준다.
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic exqress-service --partitions 1
내가 진행하고자 하는 프로젝트의 이름 [exqress-service]라는 이름으로 생성해주었다.
※ 근데 Topic 생성하는 데에 TimeOut 오류가 발생하였다.
https://wildeveloperetrain.tistory.com/219
여기서 참고한 방법을 바탕으로 오류를 해결하였다.
1) kafka 서버를 기동 할 때 사용되는 server.properties 에 아래와 같은 설정 파일을 우선 추가해준 후
//kafka_2.13-2.7.0 > config > server.properties file
listeners=PLAINTEXT://localhost:9092
2) 다시 서버를 실행하면 아마 안되는 경우가 있을 것이다. 그럴 때는 Kafka 서버로 열렸던 포트 9092번을 모두 닫아주면 된다. 포트를 닫아주는 방법은
lsof -i :9092 // 9092번 포트로 열렸던 PID 값 모두 확인하기
kill -9 {PID} // 위에서 확인한 PID 값 모두 죽이기
위 방법들을 진행해준 후 다시 실행시켜주니 잘 동작하였고 다시 Topic을 생성해주니
위와 같이 확인할 수 있었다.
Topic을 확인하는 명령어는
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic exqress-service
④ Message Producer 생성하기
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic exqress-service
위에서 생성한 [exqress-service]라는 topic에 producer로 설정해주는 명령문이다.
> 옆에 메세지를 입력할 수 있는 칸이 생성된다.
⑤ Message Consumer 생성하기
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic exqress-servi
ce --from-beginning
메세지를 수신받기 위한 consumer를 설정하는 방법이다. 위에서 만든 exqress-service topic으로부터 수신 받고자 한다.
⑥ 동작과정
- Producer 측에서 메세지를 입력하고 송신하면
- 동시에 아래와 같이 메세지가 수신하게 된다.
Consumer가 2개 이상이어도 동일하게 동작할 수 있다.
'CS > Apache Kafka' 카테고리의 다른 글
[Kafka - 03] 프로듀서의 내부 동작 원리와 구현, 중복 없는 전송 (0) | 2023.08.31 |
---|---|
[Kafka - 02] 카프카의 내부 동작 원리와 구현 (1) | 2023.08.25 |
[Kafka - 01] 카프카 기본 개념과 구조 (2) | 2023.08.23 |
[Kafka - 00] 카프카 개요 및 특징, 구성 (0) | 2023.08.21 |