บทความนี้ผมจะพาไปตั้งค่าการใช้งานระบบ Kafka พร้อมกับ Zookeeper และ Kafka UI ผ่าน Docker Compose แบบง่ายๆ ที่ใครๆ ก็ทำตามได้
ขั้นตอนการใช้งาน Kafka และ Zookeeper พร้อม Kafka UI
- สร้างไฟล์ docker-compose.yml เริ่มต้นโดยการสร้างไฟล์ docker-compose.yml ซึ่งจะเป็นตัวกำหนด Service ที่เราต้องการใช้งาน ในที่นี้เราจะใช้ Kafka, Zookeeper และ Kafka UI โดยไฟล์จะมีหน้าตาดังนี้
version: '3.8'
name: my-app
services:
zookeeper:
image: bitnami/zookeeper:3.7-debian-11
ports:
- 2135:2181
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
kafka:
image: bitnami/kafka:3.2-debian-11
ports:
- 9935:9092
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
- zookeeper
kafka-ui:
image: provectuslabs/kafka-ui:latest
ports:
- 9035:8080
environment:
DYNAMIC_CONFIG_ENABLED: 'true'
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
depends_on:
- zookeeper
- การตั้งค่า Service ต่างๆ
- Zookeeper: เป็นส่วนที่ Kafka ใช้ในการจัดการข้อมูลกลุ่ม คลัสเตอร์ และประสานงานกับ Service อื่นๆ เรากำหนดให้ใช้พอร์ต 2135 และอนุญาตให้เข้าสู่ระบบแบบไม่ต้องล็อกอินด้วย ALLOW_ANONYMOUS_LOGIN=yes
- Kafka: ใช้พอร์ต 9935 และเชื่อมต่อกับ Zookeeper ที่พอร์ต 2181 รวมถึงกำหนดให้สามารถรับข้อมูลได้แบบ plaintext โดยใช้ ALLOW_PLAINTEXT_LISTENER=yes
- Kafka UI: UI ที่ช่วยให้เราสามารถจัดการและตรวจสอบ Kafka Cluster ได้ง่ายขึ้น เรากำหนดให้ใช้พอร์ต 9035 และเชื่อมต่อกับ Kafka
- การรัน Docker Compose เมื่อเราได้ไฟล์ docker-compose.yml
สามารถรันคำสั่งต่อไปนี้ในเทอร์มินัลเพื่อเริ่มต้นบริการทั้งหมด:
docker-compose up
- คำสั่งนี้จะดึงภาพ Docker จากรีโมตและเริ่มต้น Service ทั้งหมดตามที่กำหนดในไฟล์ Compose
- ตรวจสอบการทำงานของ Kafka และ Kafka UI
- หลังจาก Service ทั้งหมดเริ่มต้นทำงานแล้ว เราสามารถเข้าถึง Kafka UI ผ่านเบราว์เซอร์ได้ที่ http://localhost:9035 เพื่อจัดการ Kafka Cluster ของเรา
- Kafka UI จะช่วยให้เราสามารถตรวจสอบ topic, consumer groups และ messages ต่างๆ ได้สะดวกมากขึ้น
สรุป
บทความนี้เราได้เรียนรู้วิธีการติดตั้ง Kafka พร้อมกับ Zookeeper และ Kafka UI ผ่าน Docker Compose ซึ่งเป็นวิธีที่สะดวกและรวดเร็ว ไม่จำเป็นต้องติดตั้งหลายโปรแกรมหรือเซ็ตค่าให้ยุ่งยาก เพียงไม่กี่ขั้นตอนก็สามารถสร้าง Kafka Cluster พร้อมเครื่องมือจัดการ UI ได้เรียบร้อย