Kafka - Tạo Topic và Quản lý Tin nhắn (Phần 3)
Chào các bạn, Toni Dev đây! 😁 Trong Phần 2, chúng ta đã cùng nhau khám phá về các khái niệm như Partition, Offset, và Consumer Group trong series Kafka. Hôm nay, chúng ta sẽ tiếp tục với Phần 3 để thực hành những kiến thức đã học.
1. Cài đặt Kafka
-
Đầu tiên, bạn hãy tải file Kafka từ đường link sau:
-
Giải nén file và cd (chuyển thư mục) vào thư mục bạn vừa giải nén bằng command line:
bashtar -xzf kafka_2.13-3.6.1.tgz cd kafka_2.13-3.6.1
-
Bây giờ, bạn có thể mở thư mục kafka_2.13-3.6.1 bằng VSCode để xem nội dung bên trong. Thư mục này chứa rất nhiều file bash script và một số file quan trọng như sau:
kafka-server-start.sh
kafka-server-stop.sh
kafka-topics.sh
zookeeper-server-start.sh
zookeeper-server-stop.sh
Bạn có thể cập nhật các file trên hoặc các file trong thư mục config nếu muốn, nhưng hãy giữ nguyên cài đặt hiện tại trong lúc thực hiện.
2. Khởi động môi trường Kafka và Zookeeper
-
Trước tiên, bạn cần cài đặt Java 8+. Bạn có thể sử dụng brew (dành cho mac), apt-get (dành cho Linux) hoặc tải trực tiếp file về để cài đặt.
-
Khởi động dịch vụ Zookeeper:
bashbin/zookeeper-server-start.sh config/zookeeper.properties
-
Khởi động dịch vụ Broker:
bashbin/kafka-server-start.sh config/server.properties
Trong suốt quá trình thực hành, hãy giữ nguyên trạng thái của 2 dịch vụ này nhé, nếu không bạn sẽ không có Zookeeper và Broker để sử dụng đâu. :v
3. Tạo và mô tả Topic
-
Tạo một Topic:
bashbin/kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092
-
Mô tả thông tin của Topic:
bashbin/kafka-topics.sh --describe --topic my-topic --bootstrap-server localhost:9092
Lưu ý: my-topic ở đây là tên Topic, bạn có thể đặt tên tùy ý nhưng không được trùng nhau, nếu không sẽ báo lỗi ngay. 🤣 Sau khi mô tả một Topic, bạn có thể xem một số thông tin như (Partition: 0, Leader: 0, Replicas: 0, ...). Những thông tin này có thể hơi phức tạp, nếu có thời gian, chúng ta sẽ tìm hiểu kỹ hơn sau.
4. Đăng tin nhắn bằng Producer
-
Để Producer gửi tin nhắn tới Topic có tên là my-topic:
bashbin/kafka-console-producer.sh --topic my-topic --bootstrap-server localhost:9092
-
Sau khi chạy lệnh, bạn hãy nhập bất kỳ tin nhắn nào để thử nghiệm. Nhớ Ctrl + C để thoát ra nhé! 😅
5. Nhận tin nhắn bằng Consumer
-
Để Consumer nhận tin nhắn từ Topic có tên là my-topic:
bashbin/kafka-console-consumer.sh --topic my-topic --from-beginning --bootstrap-server localhost:9092
-
Giờ đây, ở vị trí Consumer, bạn đã có thể đọc toàn bộ tin nhắn từ my-topic. 👌
6. Tóm tắt
Trong bài viết này, chúng ta đã thực hành thiết lập Kafka, khởi động Zookeeper và Broker, tạo Topic, và quản lý việc gửi và nhận tin nhắn qua Terminal. Ở Phần 4, chúng ta sẽ tìm hiểu cách tạo Consumer Group và đọc tin nhắn từ Partition, Offset cụ thể.
Cảm ơn các bạn đã theo dõi bài viết! Nếu có bất kỳ câu hỏi hay ý kiến nào, hãy để lại comment dưới đây để chúng ta cùng nhau thảo luận và cải thiện nhé! 😁
Tài liệu tham khảo:
- Video hướng dẫn trên YouTube
- Tài liệu Kafka chính thức
source: viblo