2022. 4. 6. 11:24ㆍ[Kafka]
개발환경]
서버 : wsl2로 설치한 Centos , Window
* virtual box 로 Linux 설치하여도 무방함
Zookeeper 실행 -> Centos 서버
Kafka 서버 실행 -> Centos 서버
Consumer, Producer -> window 서버
구상도]
위의 Ip 는 가상이며,
Cluster 의 경우 서버가 총 3대 이상이 필요하다,
필자는 한대만 사용하였고, kafka 와 zookeeper 는 같은 Ip 주소를 가지는 Centos 에서 실행함.
Consumer 와 Producer 도 같은 Ip를 가지는 window 환경에서 접근한다 ,
Consumer 와 Producer 는 다른 Ip 여도 접근방법은 동일함.
wsl2 로 window 환경에서 설치하는 방법은 다음 포스트 참고
https://yn971106.tistory.com/73?category=1003066
같은 서버에서 메세지 전송구축 밑 기본지식은 다음 포스트 참고]
https://yn971106.tistory.com/80
https://yn971106.tistory.com/81
위의 포스트를 읽고 온 뒤라 생각하고 진행하였음
비고]
1. 만약 cluster 환경 구축시 -> zookeeper 를 3번 깔아야 하며, zookeeper 서버 설정을 따로 해줘야 함.
2. 필자는 하나의 zookeeper 만 사용하였기 때문에 zookeeper.properties 수정 안함.
3. 대신 localhost 접속이 아니라 kafka 를 설치하고 구동한 Ip를 토대로 consumer 와 producer 가 붙을거기 때문에,
server.properties 파일 수정해야 함.
시작]
1. server.properties 수정
Centos 에 kafka 파일을 압축 해제한 경로-> config -> serverproperties 수정
$ vi server.properties
위의 명령어 입력시 아래로 내리다 보면, Soket 부분이 있다.
해당 부분에서 listener 를 따로 핸들링 하지 않으면 localhost로 붙는 것이고
다른 서버에서 ip를 통해 접근할 것이기 때문에 하단에 아래의 문구를 추가한다
advertised.listeners=PLAINTEXT://여러분의 Ip 주소:9092
Ip는 kafka 서버를 열 곳의 IP 주소이다.
해당 설정을 하고 wq! 로 빠져나온다.
2. zookeeper , kafka 실행
Centos 콘솔을 2개를 열고 각각의 콘솔에
$ bin/zookeeper-server-start.sh config/zookeeper.properties
$ bin/kafka-server-start.sh config/server.properties
명령어로 실행시킨다.
3. Window 에서 Producer, Consumer 실행
우선 Kafka 파일을 다운로드 받고 적절한 위치에 압축을 해제한다.
https://kafka.apache.org/downloads
단, 압축을 풀면 파일명이 길어져서
너무 길다는 오류 메세지를 뿜을 수 있기 때문에 먼저
kakfa_2.13-3.1.0 파일을 kafka 디렉토리명으로 변경한뒤 접근한다.
윈도우의 경우
bin 폴더 안에 windows 폴더로 진입해야 한다.
4. Topic 생성
위의 위치에서 다음 명령어를 실행한다
$ .\kafka-topics.bat --create --bootstrap-server 아까 입력한 Ip 주소:9092 --topic windowtopic
Producer]
$ .\kafka-console-producer.bat --broker-list 아까 입력한 IP주소:9092 --topic windowtopic
Consumer]
새로운 콘솔을 열고, 위와 같은 경로로 진입
$ .\kafka-console-consumer.bat --bootstrap-server 아까 입력한 IP주소:9092 --topic windowtopic --from-beginning
통신화면]
Producer
Consumer
감사합니다.
Consumer 나 Producer를 Centos 에 위치시켜도 되고 서로 교차 통신도 같은 원리로 작동합니다.
감사합니다.
'[Kafka]' 카테고리의 다른 글
[Kafka]_Springboot에 Kafka 연결하기(feat.consumer) (0) | 2022.04.17 |
---|---|
[Kafka]_설치 와 메세지 전송 테스트 (0) | 2022.04.06 |
[Kafka]_Kafka 의 개념과, 사용 의의 (0) | 2022.04.06 |