지난 포스팅에 이어 이번엔 Kafka를 Multi Cluster로 구성해보겠다.
구성은 아래와 같이 할 것이다.
Step 1. Kafka Download
# 버전 확인 필수
$ wget http://mirror.navercorp.com/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz
# 설치하고 싶은 경로에서 압축 풀기
$ tar -xzf kafka_2.12-2.3.0.tgz
$ cd kafka_2.12-2.3.0
Step 2. Zookeeper 설정 ( All Node )
=> vi zookeeper.properties
initLimit=10
syncLimit=5
server.1=<Broker1 Host명>:2888:3888
server.2=<Broker2 Host명>:2888:3888
server.3=<Broker3 Host명>:2888:3888
Step 3. Kafka 설정 ( All Node )
=> vi server.properties
############################# Server Basics #############################
broker.id=1 # Broker 서버마다 broker.id 값만 변경해주면 된다!!!
############################# Socket Server Settings #############################
listeners=PLAINTEXT://<Broker 1 Host IP>:9092 <필수>
num.network.threads=3
############################# Log Basics #############################
num.partitions=3
############################# Zookeeper #############################
zookeeper.connect=<Broker1 Host명>:2181,<Broker2 Host명>:2181,<Broker3 Host명>:2181
Step 4. myid 파일 생성 => Step 3. 에서 설정한 broker.id 값과 같은 값으로 해줘야 한다.
# 각 Broker 서버에서 아래 경로에 myid 파일 생성
# Broker1
echo 1 > /tmp/zookeeper/myid
# Broker2
echo 2 > /tmp/zookeeper/myid
# Broker3
echo 3 > /tmp/zookeeper/myid
Step 5. zookeeper 서버 기동 ( All Node )
$ sh bin/zookeeper-server-start.sh config/zookeeper.properties
Step 6. kafka 서버 기동 ( All Node )
$ sh bin/kafka-server-start.sh config/server.properties
Step 7. topic 생성
$ bin/kafka-topics.sh --create --zookeeper <Broker1>:2181,<Broker2>:2181,<Broker3>:2181 --replication-factor 3 --partitions 3 --topic <topic명>
Step 8. topic list 확인
$ bin/kafka-topics.sh --list --zookeeper <Broker1>:2181,<Broker2>:2181,<Broker3>:2181
Step 9. topic 상세 보기
$ bin/kafka-topics.sh --describe --zookeeper <Broker1>:2181,<Broker2>:2181,<Broker3>:2181 --topic <topic명>
Step 10. producer / consumer 생성
# producer 생성
$ bin/kafka-console-producer.sh --broker-list <Broker1>:9092,<Broker2>:9092,<Broker3>:9092 --topic <topic명>
# consumer 생성 (다른 셀을 띄워서 실행)
$ bin/kafka-console-consumer.sh --bootstrap-server <Broker1>:9092,<Broker2>:9092,<Broker3>:9092 --topic <topic명> --from-beginning
이렇게 하면 기본적인 카프카 multi cluster 구성은 완료한 것이다.
다만, 카프카 역시 작은 툴이 아니기 때문에 그 사용법이나 설정 값 또한 적지 않다. 따라서 자신의 운영 목적, 환경에 따라 세부 설정 값들은 적절히 수정하여 사용해야 할 것이다.
이제 다음 포스팅에서 Spring Boot를 이용하여 kafka를 다뤄보는 실습을 진행해보겠다.
'Message Broker > Kafka' 카테고리의 다른 글
# Kafka - 3 # Spring Boot - Kafka - Elasticsearch 예제 실습 (0) | 2019.11.12 |
---|---|
# Kafka - 1 # Kafka 개념 (0) | 2019.11.11 |