※ Mac 환경에서 Kafka를 설치하고 간단한 Producer와 Consumer를 만들어 데이터를 주고 읽어보는 과정까지 해보겠습니다.
1. Kafka 설치
brew install kafka
brew 패키지 관리 시스템으로 위 코드를 입력하면 쉽게 다운로드를 받을 수 있다. 설치가 완료되었다면,
brew list
위 코드를 입력하여 kafka가 있는지 확인해 준다.

2. 명령어
명령어 실행 위치는 Kafka 루트 폴더를 기준으로 입력했다.

※ 작성자는 설치 시 확장자가 생략되어 설치가 되었는데, 환경이 달라 파일 이름에 확장자가 있다면 확장자까지 붙여 입력해줘야 한다.
e.g.) kafka-topics가 아니라 kafka-topics.sh라면 ./bin/kafka-topics.sh --version
# Version 확인
./bin/kafka-topics --version
# Zookeeper 실행
./bin/zookeeper-server-start ./config/zookeeper.properties
# Kafka 실행
./bin/kafka-server-start ./config/server.properties
# Topic 생성
./bin/kafka-topics --create --bootstrap-server localhost:9092 --topic test
# Topic 생성 - partitions, replication-factor
./bin/kafka-topics --create --bootstrap-server localhost:9092 --topic test --partitions 1 --replication-factor 1
# Topic 확인
./bin/kafka-topics --describe --bootstrap-server localhost:9092 --topic test
# Topic 목록
./bin/kafka-topics --list --bootstrap-server localhost:9092
# Topic 삭제
./bin/kafka-topics --delete --bootstrap-server localhost:9092 --topic test
# Producer
./bin/kafka-console-producer --bootstrap-server localhost:9092 --topic test
# Producer - Key, Value
./bin/kafka-console-producer --bootstrap-server localhost:9092 --topic test --property "parse.key=true" --property "key.separator=:" --property "print.key=ture"
# Producer - Message
Hello World
# Producer - Key, Value Message
key:{"val1":"A","val2":"B","val3":3}
# Consumer
./bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning
# Consumer Group 확인
./bin/kafka-consumer-groups --list --bootstrap-server localhost:9092
# Consumer Group Topic 확인
./bin/kafka-consumer-groups --describe --bootstrap-server localhost:9092 --group test-group
3. 쥬키퍼 서버 실행
./bin/zookeeper-server-start ./config/zookeeper.properties

사진과 같이 "Zookeeper"가 보인다면 정상 실행이 된 것이다.
4. 카프카 서버 실행
(3번 쥬키퍼 서버가 실행되어 있지 않다면, 카프카 서버는 실행되지 않는다.)
./bin/kafka-server-start ./config/server.properties

아래의 터미널 창이 카프카 서버 실행 시 나오는 메시지들이다. 사진과 같이 나온다면 정상적으로 실행이 된 것이다.
(터미널에서 Shift + command + d를 누르면 가로로 터미널을 분할하여 사용할 수 있다.)
5. Topic 생성
./bin/kafka-topics --create --bootstrap-server localhost:9092 --topic test
Producer가 보낸 메시지를 저장하고, 저장된 메세지를 Consumer에게 전달하는 중요한 역할인 Topic을 생성한다.
6. Producer, Consumer 실행
Producer 실행
./bin/kafka-console-producer --bootstrap-server localhost:9092 --topic test
consumer 실행
./bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning

Producer와 Consumer를 실행했다면, Message를 보내보자.
위쪽 터미널이 Producer, 아래쪽 터미널이 Consumer이다.
위 사진은 Producer에서 "Hello World!"를 적고 보내기 직전이다. Enter로 보내보자

그러면 아래 Consumer에서 Producer가 보낸 "Hello World!"가 출력된다.
여기까지 무리 없이 진행이 되었다면 Local 환경에서 Kafka 서버를 구현이 됐다.
다른 종류의 데이터를 받아오기엔 무리가 있지만 여기서 더 나아가서 우리가 원하는 형태의 서버를 구축해 보자
다음 글은 파이썬 환경에서 Producer와 Consumer를 구현해서 다른 형태의 데이터를 주고받는 것을 해보겠다.
'Computer' 카테고리의 다른 글
| Websocket으로 데이터를 받아 MySQL에 저장하기 (2) | 2023.09.01 |
|---|---|
| 파이썬으로 데이터 API를 MySQL에 저장하기 (0) | 2023.08.31 |
| 네트워크 기초 (0) | 2023.07.11 |
| 프로그래밍 패러다임 (0) | 2023.07.03 |
| 디자인 패턴 with Python code (2) | 2023.06.08 |