본문 바로가기
DevOps

NestJS를 이용한 Typescript로 Kafka 사용해보기 -1

by dev-woo 2022. 12. 4.
반응형

Kafka 설치

 

환경

Ubuntu 18.0.4

OpenJDK 11.0.17

Kafka 3.3.1

 

 

OpenJDK 설치

 

sudo apt install -y openjdk-11-jdk

 

Kafka 사용자 생성

kafka 사용자를 생성하고 sudo 그룹에 추가한후 kafka 사용자로 로그인 합니다

 

sudo adduser kafka
sudo adduser kafka sudo
su - kafka

 

Kafka 설치하기

 

cd                     # /home/kafka로 이동
mkdir Downloads         # Download 폴더 생성
mkdir ~/kafka && cd ~/kafka   # /home/kafka/kafka 생성후 이동
curl https://dlcdn.apache.org/kafka/3.3.1/kafka_2.13-3.3.1.tgz -o ~/Downloads/kafka.tgz
tar -xvzf ~/Downloads/kafka.tgz --strip 1

 

Kafka 서버 설정

Kafka의 Topic은 기본적으로 삭제 할 수 없도록 되어 있는데 이를 수정합니다

수정할때는 vi나 nano 등 편한 편집기로 해도 됩니다

 

vi config/server.properties

 

'delete.topic.enable = true' 추가

 

~/kafka/config/server.properties
delete.topic.enable = true

 

서비스 등록 후 Kafka 실행

 

zookeeper와 kafka 관련 systemd unit files들을 만들고 이를 실행합니다

zookeeper의 경우는 카프카에 포함되어 있는 버전을 사용해도 되고, 오픈소스 버전을 이용해도 됩니다. 지금은 테스트를 위해서 카프카에 포함되어 있는 버전을 이용합니다.

 

zookeeper 서비스 등록

 

sudo vi /etc/systemd/system/zookeeper.service

 

 

/etc/systemd/system/zookeeper.service
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target


[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal


[Install]
WantedBy=multi-user.target

 

kafka 서비스 등록

 

sudo vi /etc/systemd/system/kafka.service

 

 

/etc/systemd/system/kafka.service
[Unit]
Requires=zookeeper.service
After=zookeeper.service


[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1'
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal


[Install]
WantedBy=multi-user.target

 

Kafka 실행 및 상태 확인

 

sudo systemctl start kafka        // kafka 실행
sudo systemctl status kafka       // kafka 상태 확인
sudo systemctl enable zookeeper    // 재부팅시 zookeeper 실행
sudo systemctl enable kafka        // 재부팅시 kafka 실행

 

설치 테스팅

 

TestTopic 생성

 

~/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic TestTopic

 

TestTopic에 "Hello,World" 메시지 전송

 

echo "Hello, World" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TestTopic > /dev/null

 

TestTopic을 consume해서 메시지 확인

 

~/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic TestTopic --from-beginning

 

 

 

 

References

 

https://www.digitalocean.com/community/tutorials/how-to-install-apache-kafka-on-ubuntu-18-04

 

반응형

댓글