Apach Kafka 설치 및 실행 with m1 mac

방진혁·2022년 4월 21일
1
post-thumbnail

카프카 설치하기

confluent 카프카를 도커를 통해 설치 하였는데 m1 맥이라서 자주 다운되고 성능이 느려서 아파치 카프카 사이트에서 다운받아서 설치 해보도록 하였다.

먼저 Apache 사이트에서 다운 받기

다운받는곳 클릭👈

설치 후 압축을 푼뒤에 터미널로 해당 폴더 접근

  • bin 폴더를 들어가서 보면 많은 스크립트 파일들이 존재하는것을 볼 수 있음

카프카 실행하기

zookeeper, kafka 실행

  1. zookeeper 실행
    $ bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
  2. kafka 실행
    $ bin/kafka-server-start.sh -daemon config/server.properties

Topic 생성

$ bin/kafka-topics.sh --create --topic exam --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1
  • --partitions : 토픽의 파티션 생성 개수 정하기
  • --replication-factor : 파티션의 복제본 생성 개수

Topic 상세 정보 확인하기

$ bin/kafka-topics.sh --describe --topic exam --bootstrap-server localhost:9092

Producer 콘솔 접속, Consumer 콘솔 접속(터미널 창 두개 띄워 같이 보는게 좋음)

  1. Producer
    $ bin/kafka-console-producer.sh --topic exam --bootstrap-server localhost:9092
  2. Consumer
    $ bin/kafka-console-consumer.sh --topic exam --from-beginning --bootstrap-server localhost:9092
  3. Producer 콘솔에 아무거나 입력
  4. Consumer 콘솔 확인

exam1,2,3을 먼저 보낸뒤 Consumer 콘솔을 켜고 exam4를 보낸상황이다. 잘 보면 메시지의 순서가 보장이 안된것을 알 수 있다.
마찬가지로 spring 코드 실행시에도 순서가 다른것을 알 수 있다.

이유는 파티션을 3개 생성 했기 때문에 각 파티션에 메시지들이 무작위로 들어갔기 때문이다.
이 문제를 해결하기 위해 다음 번에는 스프링에서 메시지의 Key를 통해 파티션을 정해주어 순서가 보장받도록 해봐야겠다.

profile
꾸준히 성장하고픈 개발자입니다.

0개의 댓글