2022. 4. 6. 10:47ㆍ[Kafka]
개발환경]
서버 : wsl2로 설치한 Centos
* virtual box 로 Linux 설치하여도 무방함
zookeeper , kafka , producer , consumer 전부 하나의 centos 에서 실행함
wsl2 로 window 환경에서 설치하는 방법은 다음 포스트 참고
https://yn971106.tistory.com/73?category=1003066
-----------
목표] Zookeeper 설치, Kafka 설치 , 하나의 서버에서 Producer 와 Consumer 사이의 메시지 전송 콘솔 확인
1. 설치]
https://kafka.apache.org/downloads
위의 사이트에서 밑줄된 버전의 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
감사합니다.
'[Kafka]' 카테고리의 다른 글
[Kafka]_Springboot에 Kafka 연결하기(feat.consumer) (0) | 2022.04.17 |
---|---|
[Kafka]_실전 응용 환경 적용_(kafka 1대, consumer,producer 분리) (0) | 2022.04.06 |
[Kafka]_Kafka 의 개념과, 사용 의의 (0) | 2022.04.06 |