본문 바로가기

IT 매일매일

Zookeeper + Kafka

-실습-

주키퍼 3개중 리더 1개가 문제가 생기면 나머지 둘중 하나가 리더로 변경된다(클러스터링 구성) [리더 - 팔로워]
2888 - 주키퍼 리더 포트
3888 - 주키퍼 팔로워 포트

 

zookeeper 클러스터 설정
1) 3대 VM 준비
hostname : zookeeper1, zookeeper2, zookeeper3
IP주소 : 192.168.245.130, 192.168.245.140, 192.168.245.150

2) zookeeer 다운 및 설치
yum -y install java-1.8.0-openjdk-devel.x86_64
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar zxvf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin /opt/zookeeper

3) 설정
mkdir -p /data/zookeeper
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg

(복사본을 만들어서 설정 할것.)
vi /opt/zookeeper/conf/zoo.cfg
dataDir=/tmp/zookeeper -> dataDir=/data/zookeeper

(복사본을 데이터 디렉토리로 사용한다는 설정)



마지막 줄에 다음 내용 추가
server.1=192.168.245.130:2888:3888
server.2=192.168.245.140:2888:3888
server.3=192.168.245.150:2888:3888

 

서버이름 설정

vi /data/zookeeper/myid
1 또는 2 또는 3

 

-실행 또는 재시작
/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg
/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg

 

-확인
/opt/zookeeper/bin/zkServer.sh status

출력 결과에 Mode: follower 또는 Mode: leader이 있어야 함

*셋중 하나만 랜덤으로 리더가 되고, 리더가 다운되면 다른 팔로워 중에서 리더가 다시 설정된다.

 

kafka 클러스터 설정


 -확인(주키퍼가 설치된 컴퓨터)
/opt/zookeeper/bin/zkCli.sh 
ls /

 

1) 3대 VM 준비
hostname : kafka1, kafka2, kafka3
IP주소 : 192.168.245.100, 192.168.245.110, 192.168.245.120

 

2) 설치

yum -y install java-1.8.0-openjdk-devel.x86_64
wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
tar -xzvf kafka_2.13-3.4.0.tgz
mv kafka_2.13-3.4.0 /opt/kafka

 

3) 설정

vi /opt/kafka/config/server.properties
broker.id=1 또는 2 또는 3

zookeeper.connect=192.168.245.130:2181,192.168.245.140:2181,192.168.245.150:2181

listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://현재 설정중인 컴퓨터의 IP:9092

 

4) 실행
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

 

5) 확인(주키퍼가 설치된 컴퓨터에서)
/opt/zookeeper/bin/zkCli.sh 
ls /

ls /brokers/ids    
[1,2,3] 이라고 출력되는 것 확인

카프카가 다운되어 있으면 해당 번호가 출력되지 않는다. 다운된 3번 카프카를 다시 켜고 확인하였다.

-장애 상황 메시지 확인

토픽 목록 확인

/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server 192.168.245.100:9092,192.168.245.110:9092,192.168.245.120:9092

test라는 이름의 토픽 목록이 나왔다.

토픽 생성(추가)

/opt/kafka/bin/kafka-topics.sh --create --bootstrap-server 192.168.245.100:9092,192.168.245.110:9092,192.168.245.120:9092 --replication-factor 3 --partitions 1 --topic test1

test1 토픽을 성공적으로 생성하였다.
다시 확인해보니 토픽 목록에 test1이 추가된걸 확인할 수 있다.

토픽 확인

 

-장애 발생 전

/opt/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.245.100:9092,192.168.245.110:9092,192.168.245.120:9092 --topic test1 --describe

토픽은 test1, 리더는 2번, Isr은 1,2,3번 모두 살아있다.

- 장애 발생 후(2번을 의도적으로 꺼버림)

/opt/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.245.100:9092,192.168.245.110:9092,192.168.245.120:9092 --topic test1 --describe(위와 같은 명령어임)

토픽은 마찬가지로 test1, 하지만 리더가 1번으로 바뀌었고 Isr도 1번,3번만 살아있다.

 

'IT 매일매일' 카테고리의 다른 글

ELK? 1. Elasticsearch + POSTMAN  (0) 2023.03.22
AWS 메시징 서비스  (0) 2023.03.21
Kafka?  (0) 2023.03.21
AWS 서버리스(server less) 3Tier conn 2  (0) 2023.03.16
AWS 서버리스(server less) 3Tier conn 1  (0) 2023.03.16