클러스터 구성
- 주키퍼 클러스터 1개 - 주키퍼 서버 3개로 구성됨
- 카프카 클러스터 1개 - 카프카 서비 3개로 구성됨
할 일
- 주키퍼/카프커 클러스터 공통 설정: JRE 설치, 호스트명 설정, 아파치 카프카 다운로드
- 주키퍼 클러스터에만 설정: 아파치 카프카 주키퍼 클러스터 설정 → 주키퍼 서버 띄우기
- 카프카 클러스터에만 설정: 아파치 카프카 카프카 클러스터 설정 → 카프카 서버 띄우기
공통으로 할 일
JRE 설치
sudo yum install java-17-amazon-corretto-headless
호스트명 설정
sudo vi /etc/hosts
# 아래 내용을 추가한다.
[주커퍼1 프라이빗IP] zookeeper1
[주키퍼2 프라이빗IP] zookeeper2
[주키퍼3 프라이빗IP] zookeeper3
[카프카1 프라이빗IP] kafka1
[카프카2 프라이빗IP] kafka2
[카프카3 프라이빗IP] kafka3
아파치 카프카 다운로드
카프카 다운로드 받아서 /opt/ 폴더 하위로 옮기기
wget https://dlcdn.apache.org/kafka/3.5.0/kafka_2.13-3.5.0.tgz
sudo tar zxvf kafka_2.13-3.5.0.tgz -C /opt/
ls
ls -l /opt/
카프카 심볼릭 링크 만들기
sudo ln -s /opt/kafka_2.13-3.5.0/ /opt/kafka
ls -l /opt/
주키퍼 클러스터 구성
주키퍼 노드 설정
sudo vi /opt/kafka/config/zookeeper.properties
dataDir=/data/zookeeper
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
# Disable the adminserver by default to avoid port conflicts.
# Set the port to something non-conflicting if choosing to enable this
admin.enableServer=false
# admin.serverPort=8080
# zookeepr nodes address
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
# etc
tickTime=2000
initLimit=5
syncLimit=2
데이터 디렉토리 생성
sudo mkdir /data/
sudo mkdir /data/zookeeper
주키퍼 노드 ID 설정
각각의 노드의 dataDir/myid 파일에 노드 ID 값을 각각 설정한다.
sudo vi /data/zookeeper/myid
- 주키퍼 노드 1
1
- 주키퍼 노드 2
2
- 주키퍼 노드 3
3
주키퍼 노드 실행
sudo /opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
카프카 클러스터 구성
카프카 브로커 설정
sudo vi /opt/kafka/config/server.properties
- 브로커1
# 다음 속성값을 수정한다
broker.id=1
advertised.listeners=PLAINTEXT://kafka1:9092
log.dirs=/data/kafka-logs
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
- 브로커2
# 다음 속성값을 수정한다
broker.id=2
advertised.listeners=PLAINTEXT://kafka2:9092
log.dirs=/data/kafka-logs
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
- 브로커3
# 다음 속성값을 수정한다
broker.id=3
advertised.listeners=PLAINTEXT://kafka3:9092
log.dirs=/data/kafka-logs
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
카프카 브로커 실행
sudo /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
카프카 클러스터 구성이 잘 됐는 지 확인
토픽 생성하기
/opt/kafka/bin/kafka-topics.sh --create --topic first-topic --replication-factor 3 --partitions 1 --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092
생성된 토픽 확인
/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092
# 출력되는 값
first-topic
출처
'인프라' 카테고리의 다른 글
카프카 101 (0) | 2023.10.02 |
---|---|
카프카 스키마 레지스트리 구성하기 (0) | 2023.09.22 |
13. 도커 스웜-1 (0) | 2021.04.19 |
10. 도커 스토리지 (0) | 2021.04.04 |
11. Docker Compose (0) | 2021.04.03 |