[Kafka]_설치 와 메세지 전송 테스트

2022. 4. 6. 10:47[Kafka]

728x90
반응형

개발환경]


서버 : wsl2로 설치한 Centos
* virtual box 로 Linux 설치하여도 무방함

 

zookeeper , kafka , producer , consumer 전부 하나의 centos 에서 실행함

 


wsl2 로 window 환경에서 설치하는 방법은 다음 포스트 참고

https://yn971106.tistory.com/73?category=1003066 

 

[Docker]_Infra 구축_(feat. Centos7, wsl2)

목표 ] Window 환경에서 CentOS7 을 WSL2 환경에 실행후 해당 CentOS7 안에 Docker 실행하기. Docker 란? 경량 가상화 기술이며 리눅스 컨테이너를 기반으로 이미지를 기준으로 프로세스를 격리하여 

yn971106.tistory.com

-----------

 

목표] Zookeeper 설치, Kafka 설치 , 하나의 서버에서 Producer 와 Consumer 사이의 메시지 전송 콘솔 확인

 

1. 설치]

https://kafka.apache.org/downloads

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

위의 사이트에서 밑줄된 버전의 tgz 파일을 다운로드

2. 다운로드 된 파일을 Centos 에 전달]

 

터미널을 열어서 아래의 명령어 입력시 파일이 열리게 됩니다. 그 경로에 넣어주면 됩니다.

$ explorer.exe .

해당 파일을 적절한 위치에 두고, 파일 압축을 풉니다.

$ tar -xzf kafka_2.13-3.1.0.tgz

압축을 풀면 같은 이름의 파일이 나오게 되고 cd 명령어로 접근해 줍니다.

$ cd kafka_2.13-3.1.0

3. zookeeper 실행]

 

kafka 는 zookeeper 위에서 실행이 되기 때문에, zookeeper 먼저 실행해 줍니다.

zookeeper 실행파일은 bin 파일 안에 있습니다.

하지만 해당 파일에 직접 접근하지 말고, 위의 kafak 압축을 푼 폴더의 경로에서 아래의 명령어로 실행해줍니다.

이제부터 모든 명령어는 압축을 푼 파일의 경로에서 시작됩니다.

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

위의 명령어는 bin 폴더 안에 zookeeper-server-start.sh 파일을 실행시키는데, config 파일 안의 zookeeper 설정파일을 참고하겠다는 뜻입니다.

명령어 입력시 다음과 같은 창이 뜹니다.

 

 

4. kafka 서버 열기]

 

zookeeper 실행된 콘솔은 그대로 두고 새로운 Centos 콘솔을 엽니다.

마찬가지로 설치되어 있는 파일 경로로 옵니다.

마찬가지로 bin 폴더안의 kafka-server-start.sh를 실행시킵니다.

명령어는 다음과 같습니다.

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

그럼 글이 쭉- 나오면서 서버가 실행됩니다.

kafka 서버를 올리는데 성공하였습니다.

이제는 Producer 와 Consumer를 연결시켜 간단한 테스트를 해보겠습니다.

 

5. Producer와 Consumer가 사용할 Topic 생성]

 

열린 서버는 그대로 두고 새로운 창을열어 다시 그 경로도 진입합니다.

명령어는 다음과 같습니다

$ bin/kafka-topics.sh --create --topic testtopic --bootstrap-server localhost:9092

명령어 해석]

 

bin 파일안에 topic 생성파일을 실행시키고, create 토픽을 합니다.

토픽 이름은 testtopic 이고 서버는 localhost의 9092 포트로 접근합니다.

 

생성된 토픽 확인]

 

명령어는 다음과 같습니다

$ bin/kafka-topics.sh --list --bootstrap-server localhost:9092

저는 이전에 만들어 놓은 토픽이 많아서 많이 떳지만, 처음하시는분은 testtopic 만 뜰 것입니다.

 

6. Producer , Consumer 생성]

 

각각 2개의 터미널을 더 열어줍니다.

각각 압축을 푼 폴더의 경로로 이동합니다.

명령어는 다음과 같습니다.

 

Producer]

$ bin/kafka-console-producer.sh --topic testtopic --bootstrap-server localhost:9092

Consumer]

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

 

명령어 해석]

 

각기 다른 sh 파일을 실행하고, topic의 이름은 testtopic으로 접근한다.

서버는 localhost:9092로 접근하며,

consumer 의 --from-beginning은 이전에 있던 메시지도 보여주겠다는 의미입니다.

 

Producer 부분]

Consumer 부분]

메시지가 잘 오는것을 확인할 수 있습니다.

 

kafka 공식문서 참고:https://kafka.apache.org/documentation/#quickstart

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

 

 

감사합니다.

728x90
반응형