1. 설치

http://apache.tt.co.kr/kafka/2.1.0/kafka_2.12-2.1.0.tgz

카프카는 스칼라로 작성되어 있기 때문에 실행하려면 JVM 필요하다.


2. 실행 

2-1. 설정

[ config/server.properties 파일 ]

log.dirs=/sw/kafka-data/data1,/sw/kafka-data/data2
zookeeper.connect=zookeeper-node-01:2181

2-2. 실행

카프카 실행 방법은 다음과 같다.

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

데몬으로 기동하려면 다음과 같이 실행한다.

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

만약 JVM 버전이 맞지 않으면 이런 에러가 날 수 있다. Java 8 버전 이상이 필요하다.

# bin/kafka-server-start.sh config/server.properties
Exception in thread "main" java.lang.UnsupportedClassVersionError: kafka/Kafka : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:808)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:443)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:65)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:349)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:348)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:323)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

3. 토픽

3-1. 토픽 생성

# bin/kafka-topics.sh -create -zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic mytest
Created topic "mytest".

3-2. 토픽 확인

# bin/kafka-topics.sh --list --zookeeper localhost:2181
mytest

4. 메시지 교환

4-1. Producer

# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytest

4-2. Consumer

# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytest

5. MongoDB를 Kafka Consumer로 사용하기

pom.xml 파일에 추가

<!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.9.1</version>
</dependency>