Hướng dẫn cài đặt Kafka trên Ubuntu
1. Cài đặt JAVA
Để kiểm tra máy của bạn đã cài Java chưa bạn sử dụng câu lệnh sau:
java --version
Nếu mà có dòng Command 'java' not found
như ảnh trên thì bạn cần cài Java trước khi cài Kafka (nếu ai có rồi, thì có thể bỏ qua bước này làm tiếp bước thứ 2 luôn)
sudo apt update
sudo apt install default-jdk
Sau khi cài xong bạn sử dụng lại lệnh java --version
sẽ thấy như sau:
Bước này phần cài đặt Java đã xong tiếp đến chúng ta sẽ cài đặt Kafka
2. Download Kafka
Đầu tiên chúng ta sẽ tạo thư mục để lưu file cài đặt kafka
sudo mkdir /home/kafka
Tiếp theo chúng ta vào thư mục kafka vừa tạo bằng lệnh:
cd /home/kafka
Tiếp đến chúng ta dùng lệnh dưới đây để download Kafka và lưu file vào folder /home/kafka.tgz
curl "https://downloads.apache.org/kafka/2.8.2/kafka_2.13-2.8.2.tgz" -o /home/kafka.tgz
Chu ý: Nếu ai chưa cài đặt curl
chạy lệnh sau để cài đặt:
sudo apt install curl
Bây giờ chúng ta sẽ giải nén file vừa tải về
sudo tar -xvzf /home/kafka.tgz --strip 1
3. Cấu hình Kafka
Bây giờ chúng ta sẽ tạo 1 file cấu hình server của kafka ở đường dẫn /etc/systemd/system/kafka.service
bằng câu lệnh sau:
sudo nano /etc/systemd/system/kafka.service
Sau đó copy đoạn config dưới đây vào file kafka.service
:
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
ExecStart=/home/kafka/bin/kafka-server-start.sh /home/kafka/config/server.properties
ExecStop=/home/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Sau đó lưu file lại
4. Cấu hình Zookeeper
Kafka sử dụng Zookeeper để quản lý cluster state
Bây giờ chúng ta sẽ tạo 1 file cấu hình server của Zookeeper ở đường dẫn /etc/systemd/system/zookeeper.service
bằng câu lệnh sau:
sudo nano /etc/systemd/system/zookeeper.service
Sau đó copy đoạn config dưới đây vào file zookeeper.service
:
[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
ExecStart=/home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties
ExecStop=/home/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Sau đó lưu file lại
5. Start Kafka
Chúng ta chạy câu lệnh sau để apply mọi thay đổi của hệ thống do chúng ta vừa chính sửa ở bước trước
sudo systemctl daemon-reload
Khởi động zookeeper
Tiếp đến sử dụng 2 câu lệnh sau để khởi động zookeeper
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
Sử dụng sudo systemctl status zookeeper
kiểm tra trạng thái zookeeper
Khởi động kafka
Sử dụng 2 câu lệnh sau để khởi động kafka
sudo systemctl enable kafka
sudo systemctl start kafka
Sử dụng sudo systemctl status kafka
kiểm tra trạng thái kafka
5. Tạo 1 topic
Chúng ta sẽ sử dụng câu lệnh sau để tạo 1 topic có tên là topic-kafka
sudo -u root /home/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic topic-kafka
Tiếp đến chúng ta sẽ sử dụng producer để gửi 1 message trong topic topic-kafka
bằng câu lệnh sau:
sudo -u root /home/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-kafka
Bây giờ các bạn bật thêm 1 cửa số terminal nữa sử dụng consumer
để lắng nghe sự kiện mà producer
gửi đi, các bạn sử dụng câu lệnh sau:
sudo -u root /home/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-kafka --from-beginning
Cuối cùng cũng đã hoàn thành các bạn có thể thấy trong ảnh cửa sổ terminal ở trên là producer
ở dưới là consumer
và consumer
cũng đã nhận được message xin chao minh la kafka
của producer
6.Kết luận
Ở bài sau mình sẽ hướng dẫn các bạn tích hợp kafka vào Nodejs để triên khai 1 dự án microservice, mong mọi người theo dõi và ủng hộ mình, mình cảm ơn 🥰🥰🥰🥰
All rights reserved