Message Broker/Kafka

# Kafka - 2 # Kafka Multi Cluster 구성

skysoo1111 2019. 11. 11. 18:36

지난 포스팅에 이어 이번엔 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

PRODUCER에서 메시지 발생
CONSUMER에서 메시지 받기

이렇게 하면 기본적인 카프카 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