Rental Application (React & Spring boot Microservice) - 35: kafka

yellow_note·2021년 10월 7일
0

#1 kafka 설치

http://kafka.apache.org 홈페이지에서 카프카를 설치하도록 하겠습니다.

scala 2.13에 있는 tgz압축 파일 url에 들어가 http로 다운받습니다.

kafka 디렉토리를 생성하고 압축파일을 옮기고, 다음의 명령어로 압축을 해제하겠습니다.

tar xvf kafka_2.13-3.0.0.tgz

kafka 주요 명령어입니다.

1) Zookeeper 및 Kafka 서버 구동

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

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

2) Topic 생성

  • $KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 --replication-factor 1 --create --topic quickstart-events --partitions 1

3) Topic 목록 확인

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

4) Topic 정보 확인

  • $KAFKA_HOME/bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

#2 kafka 실행

터미널을 2개로 만들어 다음의 명령어들을 이용해 kafka, zookeeper 서버를 실행하도록 하겠습니다.

1) ./bin/zookeeper-server-start.sh ./config/zookeeper.properties
2) ./bin/kafka-server-start.sh ./config/server.properties

그러면 터미널을 2개 더 만들어 topic을 생성해보도록 하겠습니다.

./bin/kafka-topics.sh --bootstrap-server  localhost:9092 --replication-factor 1 --create --topic quickstart-events --partitions 1

토픽이 잘 생성되었나 확인을 해보겠습니다.

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

quickstart-events라는 이름의 토픽이 하나 잘 생성되었습니다.

그러면 producer, consumer를 실행하여 메시지 전달을 해보겠습니다.

  • 메시지 생산
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic quickstart-events
  • 메시지 소비
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic quickstart-events --from-beginning

2개의 test메시지가 잘 전달이 되는 모습을 살펴 볼 수 있습니다.

#3 kafka connect

kafka를 java 프로젝트에서 사용하기 위해서는 kafka connect라는 라이브러리가 필요합니다. 다음의 명령어를 이용하여 kafka connect를 다운받도록 하겠습니다.

curl -O http://packages.confluent.io/archive/6.1/confluent-community-6.1.0.tar.gz

tar xvf confluent-community-6.1.0.tar.gz

  • kafka connect 실행
./bin/connect-distributed ./etc/kafka/connect-distributed.properties

kafka jdbc connector도 다운을 받도록 하겠습니다.

https://www.confluent.io/hub/confluentinc/kafka-connect-jdbc 사이트에서 Download 버튼을 누르면 zip파일을 다운받을 수 있습니다.

그리고 다운받은 zip파일을 kafka 디렉토리로 옮기고 압축을 해제하도록 하겠습니다.

압축을 해제한 파일/lib 경로를 복사해서 confluent-6.1.0/etc/kafka/connect-distributed.properties에 붙여넣도록 하겠습니다.

그리고 mariadb jar 파일을 복사해서 ./confluent-6.1.0/share/java/kafka에 붙여넣도록 하겠습니다.

cd .m2/repository/org/mariadb/jdbc/mariadb-java-client/2.7.2 && cp ./mariadb-java-client-2.7.2.jar /home/biuea/Desktop/MyRentalPlatformKafka/confluent-6.1.0/share/java/kafka

복사가 잘 되었습니다.

post-service와 rental-service에 연동하기 위한 kafka 설정을 마쳤으니 다음 포스트에서는 kafka연동을 해보도록 하겠습니다.

0개의 댓글