- vừa được xem lúc

Kafka - Tạo topic, publish/subcribe message (Part 3)

0 0 13

Người đăng: Toni Dev

Theo Viblo Asia

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

image.png

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 🤣)

image.png

  • 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é 😅

image.png

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

image.png

  • Bây giờ từ vị trí là consumer, chúng ta đã có thể read toàn bộ message từ 1 my-topic 👌

6. Summary

image.png

  • 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 Groupread 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:

Toni Dev

Bình luận

Bài viết tương tự

- vừa được xem lúc

MQTT là gì? Vai trò của MQTT trong IoT

Giới thiệu. Internet of Things (viết tắt là IoT) là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay

0 0 75

- vừa được xem lúc

Tổng quan về Apache Kafka - Hệ thống xử lý dữ liệu thời gian thực phân tán

1. Giới thiệu về Apache Kafka.

0 0 20

- vừa được xem lúc

001: Message-driven programming với Message broker và Apache Kafka

Bài viết nằm trong series Apache Kafka từ zero đến one. . . Asynchronous programming.

0 0 164

- vừa được xem lúc

002: Apache Kafka topic, partition, offset và broker

Bài viết nằm trong series Apache Kafka từ zero đến one. Nói qua về lịch sử, Kafka được phát triển bởi LinkedIn (các anh em dev chắc chẳng xa lạ gì) và viết bằng ngôn ngữ JVM, cụ thể là Java và Scala.

0 0 153

- vừa được xem lúc

003: Gửi và nhận message trong Apache Kafka

Bài viết nằm trong series Apache Kafka từ zero đến one. . . Nếu muốn các message được lưu trên cùng một partition để đảm bảo thứ tự thì làm cách nào.

0 0 222

- vừa được xem lúc

004: Apache Kafka consumer offset, Broker discovery và Zookeeper

Bài viết nằm trong series Apache Kafka từ zero đến one. 1) Consumer offset.

0 0 130