Link
Today
Total
09-23 12:18
Archives
관리 메뉴

초보개발자 긍.응.성

카프카 시작하기 - (1) (Kafka QuickStart - (1)) 본문

Kafka

카프카 시작하기 - (1) (Kafka QuickStart - (1))

긍.응.성 2020. 9. 5. 16:56
반응형

Kafka 설치부터 간단한 spring-boot 애플리케이션과 연결하여 동작시키는 과정을 정리한 글입니다. Apache Kafka QuickStart 페이지와 CONFLUNET 예제를 참고하였습니다.

 

1. Kafka 다운로드

Kafka를 다운로드합니다. 저는 wget 명령어로 다운로드하고 적당한 폴더에 압축을 해제하겠습니다.

$ mkdir apps
$ cd apps
$ wget http://mirror.navercorp.com/apache/kafka/2.6.0/kafka_2.13-2.6.0.tgz
$ tar -xzf kafka_2.13-2.6.0.tgz
$ ln -s kafka_2.13-2.6.0 kafka	# 버전 up시 변경을 줄이기위한 심볼릭 링크 생성
$ cd kafka

 

2. Kafka 동작 환경 설정

로컬 환경에 8 버전 이상의 Java가 설치되어있어야 합니다. 

Kafka실행 전 zookeeper가 먼저 동작하고 있어야 합니다. zookeeper, kafka 순으로 서버를 시작시키겠습니다.

$ bin/zookeeper-server-start.sh config/zookeeper.properties
$ bin/kafka-server-start.sh config/server.properties

 

3. 토픽 생성

Kafka는 이벤트(event)들을 토픽(topic) 단위로 관리합니다. 파일시스템에 비유 시 토픽이 폴더라면, 발생하는 이벤트 들은 폴더 안의 파일로 생각할 수 있습니다. 이제 관리할 이벤트들을 위한 토픽을 하나 등록합니다.

# 'test-events' 토픽을 생성 (kafka broker 기본 port = 9092)
$ bin/kafka-topics.sh --create --topic test-events --bootstrap-server localhost:9092

# test-topic에 대한 파티션 상태 확인
$ bin/kafka-topics.sh --describe --topic test-events --bootstrap-server localhost:9092
Topic:test-events  PartitionCount:1    ReplicationFactor:1 Configs:
    Topic: test-events Partition: 0    Leader: 0   Replicas: 0 Isr: 0

 

4. 토픽에 이벤트 쓰기

카프카 토픽은 파티션 단위로 브로커(broker)에게 분산됩니다. 브로커는 이름처럼 메시지 중간 역할을 합니다. 발행자로부터 메시지를 전달받고 구독자에게 메시지를 전달합니다. 카프카에서는 발행자를 프로듀서(Producer), 구독자를 컨슈머(Consumer)라 정의합니다.

출처: https://bitnine.net/blog-computing/understanding-of-apache-kafka-part-2/

 

먼저 Producer를 이용해 토픽에 이벤트를 발행해보겠습니다. 발행한 메시지는 브로커를 통해 관리됩니다. 

$ bin/kafka-console-producer.sh --topic test-events --bootstrap-server localhost:9092
> first test-events!
> I am a producer!

 

Producer기능을 중지하고 싶다면 Ctrl-C 키를 입력해 빠져나와줍니다.

 

5. 토픽 읽어오기

발행한 이벤트를 읽어오려고 합니다. 이때는 Consumer를 이용하여 읽어옵니다. Producer가 발행했던 순서로 이벤트를 가져와 콘솔에 뿌려지게 됩니다.

$ bin/kafka-console-consumer.sh --topic test-events --from-beginning --bootstrap-server localhost:9092
first test-events!
I am a producer!
Consumer 기능을 중지하고 싶다면 Ctrl-C 키를 입력해 빠져나와줍니다.

 

6. 카프카 종료하기

  1. 지금까지 진행했던 것의 역순으로 종료합니다. 먼저 Producer와 Consumer가 종료되지 않았다면 종료시킵시다. 모든 종료는 Ctrl-C를 이용합니다.
  2. Kafka broker를 종료합니다.
  3. 마지막으로 ZooKeeper를 종료합니다.

test-events 토픽에 발행했던 메시지는 주키퍼와 카프카가 종료되어도 재 시작 시 남아있게 됩니다. 카프카 종료와 함께 저장된 이벤트들도 함께 제거하고 싶다면 아래의 명령어를 입력하여 제거해줍니다.

$ rm -rf /tmp/kafka-logs /tmp/zookeeper

지금까지 카프카를 설치 및 실행하고 Producer와 Consumer를 이용하여 이벤트를 발행/구독하는 것을 테스트해보았습니다. 이어서 지금 설치한 ZooKeeper와 Kafka broker를 이용해 스프링 부트 환경에서 Producer와 Consumer를 이용한 테스트를 진행해보겠습니다.

감사합니다.

※ 참고 링크: kafka.apache.org/quickstart#quickstart_send

반응형

'Kafka' 카테고리의 다른 글

카프카 시작하기 - (2) (Kafka QuickStart - (2))  (2) 2020.09.05
Comments