일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 콘솔출력문
- 명명규칙
- 문자열
- dowhile문
- 산술 쉬프트 연산자
- print()
- 다중if
- 논리 쉬프트 연산자
- 배열
- 안드로이드스튜디오
- 비교연산자
- while문
- 증감연산자
- for문
- 순환문
- 대입 연산자
- 타입변환
- Java
- 단순if
- 자바
- 삼항 연산자
- array
- 비트논리연산자
- 변수유효범위
- println()
- 기본형호출
- 참조형호출
- 다차원배열
- 비정방행렬
- 사용자입력Switch문
- Today
- Total
신입개발자
Apache Kafka 설치부터 실행 본문
Kafka - 개념 및 용어
https://victorydntmd.tistory.com/344
https://freedeveloper.tistory.com/396?category=909995
https://engkimbs.tistory.com/691
설치 가이드
https://kafka.apache.org/quickstart - APACHE KAFKA QUICKSTART
NOTE: Your local environment must have Java 8+ installed.
windows 인 경우 Kafka with ZooKeeper 로 설치
1. 사용자 추가
sudo adduser kafka
passwd kafka
kafka 사용자의 비밀 번호 변경 중
새 암호:
새 암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
2. 생성된 사용자(유저) 확인
tail -n 3 /etc/passwd
3. 포트 확인
firewall-cmd --list-all
[서버1]
ports: 18992/tcp 3306/tcp 9998/tcp 19997/tcp 9093/tcp 9092/tcp 7777/tcp 50001/tcp 50003/tcp
[서버2]
ports: 8991/tcp 18992/tcp 19998/tcp 9998/tcp 19999/tcp 8992/tcp 12311/tcp 12312/tcp 51000/tcp 54000/tcp 54001/tcp 51001/tcp 4564/tcp 9090/tcp 51002/tcp 7897/tcp 9093/tcp 9092/tcp 38992/tcp 9091/tcp 9095/tcp 9999/tcp 9997/tcp
[서버3]
ports: 3306/tcp 9998/tcp 19999/tcp 52000/tcp 9093/tcp 9092/tcp 52001/tcp 5432/tcp 6379/tcp 38080/tcp 50001/tcp
#[각각 서버에 동일하게 수행]
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-port=19093/tcp
firewall-cmd --permanent --zone=public --add-port=19092/tcp
sudo firewall-cmd --reload
firewall-cmd --list-all
3. kafka tgz 파일 해당 서버 폴더에 업로드 후 압축 해제
카프카 다운로드 페이지
https://kafka.apache.org/downloads
tar -xvzf [파일 명]
tar -xvzf kafka_2.13-3.4.0.tgz
mv [원본 이름] [변경할 이름]
mv kafka_2.13-3.4.0 kafka
https://github.com/inomera/kafka-3-cluster 참고해서 작업하기
cd /home/kafka/kafka
mkdir logs
mkdir data
mkdir data/metadata-logs
mkdir data/kraft-combined-logs
mkdir scripts
cd /home/kafka/kafka/config/kraft/
cp server.properties server22.properties
- server22.properties 변경 부분
controller.quorum.voters=1@서버1IP:19093,2@서버2IP:19093,3@서버3IP:19093
listeners=PLAINTEXT://서버1IP:19092,CONTROLLER://서버1IP:19093
advertised.listeners=PLAINTEXT://서버1IP:19092
log.dirs=/home/kafka/kafka/data/kraft-combined-logs
metadata.log.dir=/home/kafka/kafka/data/metadata-logs
num.partitions=3
- 클러스터 ID 생성 (/home/kafka/kafka 위치에서)
./bin/kafka-storage.sh random-uuid
HlpJYlLjS0C191Om1WlogA
주의 사항 : 동일한 클러스터 ID로 서버2, 서버3 도 만들 것
- 스토리지 디렉토리 포맷
./bin/kafka-storage.sh format -t (/bin/kafka-storage.sh random-uuid으로 출력된 값) -c ./config/kraft/server22.properties
# 결과출력
Formatting /home/kafka/kafka/data/kraft-combined-logs with metadata.version 3.3-IV3.
Formatting /home/kafka/kafka/data/metadata-logs with metadata.version 3.3-IV3.
- 스토리지 생성 및 kafka 서버 (백그라운드) 기동(/home/kafka 위치에서)
./kafka/bin/kafka-server-start.sh -daemon ./kafka/config/kraft/server1.properties
- 혹은 /home/kafka/ 위치에 start.sh과 shutdown.sh 생성 후 실행
- start.sh
KAFKA_HOME=/home/kafka/kafka
KAFKA_CLUSTER_ID= (./bin/kafka-storage.sh random-uuid 명령으로 출력된 값)
$KAFKA_HOME/bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c $KAFKA_HOME/config/kraft/server.properties
$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/kraft/server.properties
주의사항 : server.properties는 수정된 server.properties로 변경해야 합니다.
- shutdown.sh
KAFKA_HOME=/home/kafka/kafka
$KAFKA_HOME/bin/kafka-server-stop.sh -daemon $KAFKA_HOME/config/kraft/server.properties
[kafka 시작되었는지 확인하기]
[kafka:/home/kafka] jps
10839 Jps
2714 Kafka
[토픽생성]
./kafka/bin/kafka-topics.sh --bootstrap-server 서버1IP:19092 --replication-factor 2 --partitions 3 --topic testnewtopic --create
--> 제대로 동작한다면
Created topic testnewtopic.
[토픽확인]
./kafka/bin/kafka-topics.sh --bootstrap-server 서버1IP :19092 --list
testnewtopic
[토픽 상세]
./kafka/bin/kafka-topics.sh --bootstrap-server 서버1IP :19092 --topic testnewtopic --describe
Topic: testnewtopic TopicId: mn8cdYL7SWW-kqISvE8AAw PartitionCount: 3 ReplicationFactor: 2 Configs: segment.bytes=1073741824
Topic: testnewtopic Partition: 0 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: testnewtopic Partition: 1 Leader: 3 Replicas: 3,1 Isr: 3,1
Topic: testnewtopic Partition: 2 Leader: 1 Replicas: 1,2 Isr: 1,2
[ 토픽 삭제 ]
./kafka/bin/kafka-topics.sh --bootstrap-server 서버1IP:19092 --delete --topic testnewtopic
[컨슈머 그룹 생성]
./kafka/bin/kafka-console-consumer.sh --bootstrap-server 서버1IP:19092 --topic testnewtopic --group first-group
[컨슈머 그룹 리스트 확인]
./kafka/bin/kafka-consumer-groups.sh --bootstrap-server 서버1IP:19092 --list
[컨슈머 상태와 오프셋 확인]
./kafka/bin/kafka-consumer-groups.sh --bootstrap-server 서버1IP:19092 --group first-group --describe
[ 카프카 모니터링 툴 ]
[ Ui for Apache Kafka ]
- java17 다운
- 서버에 tar파일 업로드 및 kafka-ui-tool 폴더 생성
mkdir kafka-ui-tool
tar -xvzf openjdk-17.0.2_linux-x64_bin.tar.gz
mv jdk-17.0.2 jdk-17
- root 로 들어가 port 열어주기
firewall-cmd --list-all
firewall-cmd --permanent --zone=public --add-port=19094/tcp
sudo firewall-cmd --reload
firewall-cmd --list-all
- 백그라운드로 jar 파일 실행
http://10.10.1.23:19094/
nohup /home/kafka/jdk-17/bin/java -Dspring.config.additional-location=/home/kafka/kafka-ui-tool/application.yml --add-opens java.rmi/javax.rmi.ssl=ALL-UNNAMED -jar /home/kafka/kafka-ui-tool/kafka-ui-api-v0.7.0.jar & > kafka-ui.log
'개인 개발 공부' 카테고리의 다른 글
Kafka Stream (0) | 2023.08.31 |
---|---|
Kafka Producer (1) | 2023.08.31 |
JUnit 테스트 (0) | 2023.08.31 |
Burp Suite (0) | 2023.08.31 |
gw-manger / portal docker 실행 (0) | 2023.08.31 |