
초기 서버 설계에는 없었는데, 커뮤니티를 만들면서 사용자 알림 데이터와 페이지 접속 이력을 남기기 위해 추가 하였습니다.
RabbitMQ도 선택지에 있었는데, 이것은 많이 사용해 봤지만 Kafka는 한 번도 사용해본 적이 없어서 적용하였습니다.
설치 환경은 Rocky Linux 10 입니다.
version: 2.13-4.1.1
클러스터가 아닌 단일 서버로 진행 합니다.
# 자바 21 설치
sudo rm -f /etc/yum.repos.d/adoptium.repo
# repo 추가
sudo tee /etc/yum.repos.d/adoptium.repo <<EOF
[Adoptium]
name=Adoptium
baseurl=https://packages.adoptium.net/artifactory/rpm/rhel/9/x86_64
enabled=1
gpgcheck=1
gpgkey=https://packages.adoptium.net/artifactory/api/gpg/key/public
EOF
# log.dir 디렉토리 생성
mkdir /home/kafka/kraft-combined-logs
sudo chmod 750 /home/kafka/kraft-combined-logs
# 캐시 날리기 및 설치
sudo dnf clean all
sudo dnf makecache
sudo dnf install temurin-21-jdk -y
# 클러스터 id 생성 - r5Gh_pP6Tf-L-wwH_aP4Vg
/bin/kafka-storage.sh random-uuid
# server.properties 수정
controller.quorum.voters=1@localhost:9093 // 이거는 없으면 추가
listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
advertised.listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
log.dirs=/home/kafka/kraft-combined-logs
# 메타데이터 초기화
bin/kafka-storage.sh format -t tr5Gh_pP6Tf-L-wwH_aP4Vg -c config/server.properties
# log, pid파일 생성
nohup /home/kafka/kafka_2.13-4.1.1/bin/kafka-server-start.sh /home/kafka/kafka_2.13-4.1.1/config/server.properties \
> /home/kafka/kafka_2.13-4.1.1/kafka.log 2>&1 & echo $! > /home/kafka/kafka_2.13-4.1.1/kafka.pid
# kafka 실행
/home/kafka/eft-library-kafka/kafka.sh start
# 토픽 생성 -- 사용자 방문 이력과 커뮤니티 알림용 입니다.
/home/kafka/kafka_2.13-4.1.1/bin/kafka-topics.sh \
--create \
--topic web-logs-topic \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1 \
--config retention.ms=86400000
/home/kafka/kafka_2.13-4.1.1/bin/kafka-topics.sh \
--create \
--topic user-notification \
--bootstrap-server localhost:9092 \
--partitions 3 \
--replication-factor 1 \
--config retention.ms=604800000
# 토픽 리스트 확인
/home/kafka/kafka_2.13-4.1.1/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
# 활성화 후 pub 확인 - 사이트 돌아다니기
/home/kafka/kafka_2.13-4.1.1/bin/kafka-console-consumer.sh --topic web-logs-topic --from-beginning --bootstrap-server localhost:9092
기본 설정이 kraft여서 간단히 할 수 있었습니다.
Kafka 또한 restart 스크립트를 만들었는데, 이후의 포스트에 작성하겠습니다.