Kafka 클러스터 구축 (multi-broker on a Single node)
site : http://kafka.apache.org/
1. kafka download
# wget http://apache.mirror.cdnetworks.com/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz
# tar -zxf kafka_2.11-0.10.0.0.tgz
2. zookeeper 설치
- Kafka 내부의 zookeeper를 실행하거나, 별도의 zookeeper를 설치하여, 실행한다.
- 내부 설정.
- ./config/zookeeper.properties
- 별도 zookeeper 설정
- ./conf/zoo.cfg
하지만, 내용은 같다.
3. Kafka 클러스터 구축
1) Broker 설정 및 구동
server.properties는 kafka broker를 실행하는데 쓰는 설정 파일이며, 3개의 broker로 이루어진 cluster를 구성하기 위해서는 각각 개별 설정하여야 한다.
# vi ./config/server.properties
broker.id=1 listeners=PLAINTEXT://:9092 port=9092 log.dirs=./tmp/kafka-logs |
[중요] multi node시 port를 꼭!!!지정해주어야함. 그렇지 않으면 인식 못함
zookeeper 연동을 위하여, zookeeper.connect 항목 3개 노드 모두를 적어준다.
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183 |
(zookeeper node를 localhost에 2181, 2182, 2183으로 3개 node 구동)
2) 실행/종료 script 생성 및 실행
# vi start.sh
#!/bin/bash ./bin/kafka-server-start.sh -daemon ./config/server.properties |
# vi stop.sh
#!/bin/bash ./bin/kafka-server-stop.sh ./config/server.properties |
3) 실행확인
log 확인 하거나
# netstat -an | grep 909*
4. Kafka Topic 생성 (single)
# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 10 --topic test2
5. TOP 확인하기
# ./bin/kafka-topics.sh --list --zookeeper localhost:2181
6. Topic 상세 정보 확인
# ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test2
7. Topic으로 메시지 보내기
설정에서 "listners=PLAINTEXT://:9092" 를 지정했다. conf/server.properties
다음과 같이 실행후 Message를 입력한다.
# ./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test2
message 1
message 2
message 3
message 4
message 5
message 6
8. Topic에서 메시지 받기
# ./bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test2 --from-beginning
9. kafka mirroing
# ./kafka-mirror-maker.sh --consumer.config ../config/mirror-consumer.properties --producer.config ../config/mirror-producer.properties --whitelist=".*"