CentOS에 Apache Kafka를 설치하는 방법에 대하여 알아봅니다.

공식 홈페이지

java 설치

kafka는 Java기반에서 동작하므로 현재버전 확인 후 Java8 이상을 설치합니다.

$ java -version
$ sudo yum install java-1.8.0-openjdk.x86_64

Kafka 다운로드 및 압축해제

$ wget http://apache.tt.co.kr/kafka/2.2.0/kafka_2.12-2.2.0.tgz 
$ tar -xzf kafka_2.12-2.2.0.tgz
$ cd kafka_2.12-2.2.0/

Start Zookeeper

Kafka는 분산 처리를 위해 Zookeer를 사용하므로 아래와 같이 Zookeeper 면저 실행합니다.

$ cd bin
$ sh zookeeper-server-start.sh -daemon ../config/zookeeper.properties

Kafka Configuration

서버의 성능에 맞게 JVM 최대 최소 힙 메모리 사이즈를 조정합니다.

$ vi kafka-server-start.sh
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

Start Kafka Server

$ sh kafka-server-start.sh -daemon ../config/server.properties

Kafka 테스트

토픽 생성 및 확인 – “TopicHello”

$ sh kafka-topics.sh --create --bootstrap-server localhost:2181 --replication-factor 1 --partitions 1 --topic TopicHello
Created topic TopicHello.
// Topic 확인
$ sh kafka-topics.sh --list --bootstrap-server localhost:2181
TopicHello

“TopicHello” 에 Message 발행

$ sh kafka-console-producer.sh --broker-list localhost:9092 --topic TopicHello
>Welcome to Hello Kafka
>Have a nice day!

발행된 Topic Message 소비

새로운 터미널을 하나 더 생성하고 Consumer를 실행합니다. 이때 –from-beginning 옵션을 주면 Topic의 최초 Message부터 다 읽어옵니다. 옵션을 생략하면 Cosumer 실행 이후 발행된 메시지만 읽어옵니다.

$ cd kafka_2.12-2.2.0/bin/
$ sh kafka-console-consumer.sh --zookeeper localhost:2181 --topic TopicHello --from-beginning
Welcome to Hello Kafka
Have a nice day!