Hellu, Toni Dev đây 😁. Ở part 2 thì chúng ta đã cùng nhau tìm hiểu về Partition, Offset & Consumer Group trong series Kafka. Hôm nay chúng ta sẽ tiếp tục part 3 để cùng nhau thực hành (practice) nhé.
1. Install Kafka
- Đầu tiên các bạn download file theo đường link này
- Sau đó giải nén nó và cd (change directory) vào folder mà bạn vừa giải nén bằng command line:
tar -xzf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1
- Tới đây các bạn có thể dùng VSCode để mở folder kafka_2.13-3.6.1 và xem trong đó có gì. Trong folder này thì có rất nhiều file bash script nhưng sẽ có 1 số file quan trọng như:
kafka-server-start.sh
kafka-server-stop.sh
kafka-topics.sh
zookeeper-server-start.sh
zookeeper-server-stop.sh
2. Start kafka enviroment with Zookeeper
- Trước tiên trên máy cần install Java 8+, bạn có thể sử dụng brew (for mac) hoặc apt-get (for lunix) để install nó.
- Start Zookeeper service:
bin/zookeeper-server-start.sh config/zookeeper.properties
- Start Broker service:
bin/kafka-server-start.sh config/server.properties
- Trong suốt quá trình practice thì bạn đừng tắt 2 services này nhé :v
3. Create & decribe topic
- Create a topic:
bin/kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092
- Describe info a topic:
bin/kafka-topics.sh --describe --topic my-topic --bootstrap-server localhost:9092
- Lưu ý: my-topic ở đây chính là topic_name, bạn có thể đặt tùy ý nhưng không được đặt tên các topic trùng nhau (bởi vì nó sẽ báo error ngay 🤣)
- Sau khi dùng cmd để describe 1 topic thì ta có thể xem được 1 vài info của topic như (Partition: 0, Leader: 0, Replicas: 0, ...)
4. Producer publish message
- Producer publish message vào topic có name là my-topic:
bin/kafka-console-producer.sh --topic my-topic --bootstrap-server localhost:9092
- Sau khi run cmd trên các bạn hãy enter bất kì message nào để test nó. Nhớ Ctrl + C để exit nhé 😅
5. Consumer subcribe message
- Consumer subcribe message từ topic có tên là my-topic:
bin/kafka-console-consumer.sh --topic my-topic --from-beginning --bootstrap-server localhost:9092
- Bây giờ từ vị trí là consumer, chúng ta đã có thể read toàn bộ message từ 1 my-topic 👌
6. Summary
- Bài này mình đã cùng các bạn practice kafka, cụ thể là start zookeeper, start broker, tạo topic, publish/subcribe message ở trên Terminal.
- Ở phần 4 chúng ta cùng nhau tạo Consumer Group và read message từ Partition, Offset cụ thể (thay vì read message từ 1 topic).
- Cảm ơn các bạn đã đọc đến đây, nếu có góp ý hay thắc mắc gì thì hãy comment phía dưới để chúng ta cùng upgrade nhé 😁
Reference:
- https://www.youtube.com/watch?v=nuNTjg6ztl8&t=2s
- https://kafka.apache.org/quickstart#quickstart_startserver