ใช้งาน Apache Kafka ฉบับเร่งรัด
บทความนี้เราจะมาลองใช้งาน Apache Kafka ฉบับสายย่อ ย่อแล้วย่ออีก แบบ Step by step บน OS Windown
Apache Kafka คืออะไร
Apache Kafka คือ distributed message queue เป็น open sourced สามารถลองรับรองรับข้อมูลความเร็วสูงในปริมาณมาก นิยมเอามาใช้ในการเก็บข้อมูล
Topic คือหมวดหมู่ หรือ Group
Partitions คือข้อมูลในแต่ละ Topic
Producers ทำหน้าที่ส่งข้อมูลให้กับ topics
Consumers ทำหน้าที่ดึงข้อมูลจาก topics
Zookeeper ทำหน้าที่จัดการทุกอย่างในการ Write/Read ข้อมูลจากเจ้า Kafka บอกสถานะทุกอย่างเป็นเหมือนคนดูแลข้อมูลของ Kafka
ขั้นตอนการเตรียม Resource และ Config
หรือถ้าอยาก Install Apache kafka on Docker คลิกที่นี่
- download apache kafka ได้ที่ https://kafka.apache.org/downloads จะมีหลาย version ให้เลือกเราจะเลือกใช้ version 2.7.0 ซึ่งเป็น version ล่าสุดตอนนี้
- UnZip file ที่ดาวโหลดน์มาเราได้ชื่อ folders เป็น kafka_2.13–2.7.0 แล้วเอา folders kafka_2.13–2.7.0 ไปวางที่ไหนอันนี้ตามใจเราได้เลย สำหรับตัวอย่างนี้เราจะเอา folders kafka_2.13–2.7.0 ไปวางได้ที่ไดร์ C:\kafka_2.13–2.7.0
- เปลี่ยน log.dirs ใน C:\kafka_2.13–2.7.0\config\server.properties ดังตัวอย่างต่อไปนี้
log.dirs=C:/kafka_2.13-2.7.0/kafka-log
4. สร้าง folders C:\kafka_2.13–2.7.0\kafka-log
5. เปลี่ยน dataDir ใน C:\kafka_2.13–2.7.0\config\zookeeper.properties ดังตัวอย่างต่อไปนี้
dataDir=C:/kafka_2.13-2.7.0/zookeeper-data
6. สร้าง folder C:\kafka_2.13–2.7.0\zookeeper-data
ขั้นตอนการใช้งาน
- Start server Zookeeper จะเปิด port 2181 (TCP)
เปิด Command Prompt ใช้คำสั่งตาม command ด้านล่าง
$cd C:\kafka_2.13-2.7.0
$.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
2. Start server Kafka จะเปิด port 9092 (TCP)
เปิด Command Prompt ใช้คำสั่งตาม command ด้านล่าง
$cd C:\kafka_2.13-2.7.0
$.\bin\windows\kafka-server-start.bat config\server.properties
3. สร้าง Topic
เปิด Command Prompt ใช้คำสั่งตาม command ด้านล่าง
$cd C:\kafka_2.13-2.7.0
$.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic <TopicName> Created topic <TopicName>
4. ดูว่ามี Topic อะไรบ้างใน server kafka บ้าง
$.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
5. ใช้งาน producer เพื่อเพิ่ม Partitions ในแต่ล่ะ Topic
$.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic <TopicName>
6. ใช้งาน consumer เพื่อดู Partitions ในแต่ละ Topic
$.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic <TopicName>
7. delete Topic
$.\bin\kafka-topics.sh --zookeeper localhost:2181 --delete --topic <TopicName>
8. Count Topic เพื่อดู total Partitions ในแต่ล่ะ Topic
$.\bin\windows\kafka-run-class.bat kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic <TopicName> --time -1 --offsets 1
*** NOTE ***
<TopicName> คือชื่อของ Topic ที่เราสามารถตั้งชื่อเองได้