너무 복잡해서 kafka를 통해 메시지를 주고 받을 수 있게끔 함.
kafka가 죽어버리면.. 방법이 없음
따라서, kafka 클러스터 구성을 한다.
zookeeper도 클러스터 구성을 한다.
zookeeper 설치, kafka 설치
원래는 kafka 설치하면 zookeeper가 자동으로 설치되지만 이번에는 따로 설정을 한다.
1. 가상머신 6대를 준비한다.(각 3대씩)
2. JDK를 다운받는다.
yum -y install java-1.8.0-openjdk-devel.x86_64
3. zookeeper stable 버전으로 다운받는다.
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
아래 링크 참고함
https://zookeeper.apache.org/releases.html
4. 압축 해제
tar zxvf apache-zookeeper-3.7.1-bin.tar.gz
5. zookeeper라는 디렉토리에 파일 이동
mv apache-zookeeper-3.7.1-bin /opt/zookeeper
6. zookeeper가 관리하는 정보를 한 곳에서 저장하여 관리한다. 저장공간이 될 파일을 생성한다.
mkdir -p /data/zookeeper
7. zoo_sample.cfg : 사본을 작성해서 쓰도록 복사한다.
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
8. vi /opt/zookeeper/conf/zoo.cfg에서 데이터 디렉토리를 바꿔주고, 마지막 줄에 주키퍼 서버들을 클러스터링 등록한다. (아래 더보기에 수정할 부분 적혀있음)
dataDir=/tmp/zookeeper -> dataDir=/data/zookeeper
마지막 줄에 다음 내용 추가
server.1=192.168.100.10:2888:3888
server.2=192.168.100.20:2888:3888
server.3=192.168.100.30:2888:3888
server의 아이디 1,2,3 준 거(다른 걸로 바꿔도 됨)
2888, 3888 포트번호를 가지고 클러스터링 구성을 한다. (상태를 주고 받거나, 리더 선정할 때 사용)
기본적으로 zookeeper는 2181 포트를 사용한다.
모든 zookeeper가 2888 포트를 쓰고 있지는 않는다. (리더만 2888 포트를 Listen한다.)
active 상태가 된 서버가 리더, 다른 애들이 follower이다.
리더가 죽으면, 다른 애들 중 하나를 다시 리더로 선정한다.
<zookeeper 각 server 당 다르게 해야 하는 설정>
9. vi /data/zookeeper/myid에서 아까 더보기 안 설정 파일에 'server.' 뒤에 붙는 아이디를 적어준다.
10. 실행한다. 실행이 잘 안 될 경우, 재시작
/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg
/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg
11. 아래의 명령어로 확인한다. ERROR라고 뜰 경우, 방화벽을 해제한다.
출력 결과에 Mode: follower 또는 Mode: leader이 있어야 한다.
/opt/zookeeper/bin/zkServer.sh status
or 방화벽 해제 후 다시 진행
systemctl stop firewalld
zookeeper3이 leader로 뜨는 것을 확인할 수 있다.
- zookeeper1
- zookeeper2
- zookeeper3
그리고 leader인 zookeeper3만 2888 포트가 Listen 모드인 것을 확인할 수 있다.
'클라우드 > AWS' 카테고리의 다른 글
리눅스, kafka와 zookeeper 클러스터 상태에서의 장애 상황 테스트 (0) | 2023.03.21 |
---|---|
리눅스, kafka 클러스터 구성하기 (0) | 2023.03.21 |
AWS) CloudWatch를 통한 모니터링 & 메모리 지표 추가 후 모니터링 (1) | 2023.03.17 |
비교) EC2 웹 서버 방식 vs S3 웹 서버 방식(서버리스) 어느 것이 더 좋을까? (0) | 2023.03.15 |
AWS) S3를 통한 react build 배포 (0) | 2023.03.15 |