[Kafka]_실전 응용 환경 적용_(kafka 1대, consumer,producer 분리)

2022. 4. 6. 11:24[Kafka]

728x90
반응형

개발환경]


서버 : 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 

 

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

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

yn971106.tistory.com

 

같은 서버에서 메세지 전송구축 밑 기본지식은 다음 포스트 참고]

https://yn971106.tistory.com/80

 

[Kafka]_Kafka 의 개념과, 사용 의의

Kafka 소개] 2011년 LinkedIn에서 개발된 분산 메시징 시스템이며 2014년 아파치를 통해 오픈 소스화 주요기능] Producer : 메시지를 보내는 자 consumer : 메시지를 받는자 의 모델로 이루어저 있다 고가용

yn971106.tistory.com

https://yn971106.tistory.com/81

 

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

개발환경] 서버 : wsl2로 설치한 Centos * virtual box 로 Linux 설치하여도 무방함 zookeeper , kafka , producer , consumer 전부 하나의 centos 에서 실행함 wsl2 로 window 환경에서 설치하는 방법은 다음 포..

yn971106.tistory.com

 

위의 포스트를 읽고 온 뒤라 생각하고 진행하였음

 

비고]

 

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

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

단, 압축을 풀면 파일명이 길어져서

너무 길다는 오류 메세지를 뿜을 수 있기 때문에 먼저

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 에 위치시켜도 되고 서로 교차 통신도 같은 원리로 작동합니다.

 

감사합니다.

728x90
반응형