การแก้ปัญหา Kafka

Apache Kafka เบื้องต้น

Mike Metzger

Data Engineering Consultant

พฤติกรรม "ที่พยายามช่วย"

  • Kafka พยายามช่วยเหลือผู้ใช้
  • แต่บางครั้งกลับก่อให้เกิดปัญหา
  • โดยค่าเริ่มต้น ไม่จำเป็นต้องสร้าง topic ก่อนเขียนข้อมูล
  • ลองนึกภาพว่าจะเกิดอะไรขึ้นถ้าพิมพ์ชื่อ topic ผิด (เช่น ordrs แทน orders)

รูปสุนัขหน้างงงวย

1 ภาพโดย Dex Ezekiel จาก Unsplash
Apache Kafka เบื้องต้น

ตัวอย่างพฤติกรรม "ที่พยายามช่วย"

$ bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
orders
$ echo "Test message" | bin/kafka-console-producer.sh 
   --bootstrap-server localhost:9092 \
   --topic ordrs
$ bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
orders
ordrs
Apache Kafka เบื้องต้น

ปัญหาการเชื่อมต่อ

  • Kafka เป็น networked service
  • ปัญหาด้านเครือข่ายใดๆ ล้วนส่งผลต่อการสื่อสารของ Kafka
  • ตรวจสอบผลลัพธ์ของคำสั่งเพื่อระบุปัญหาที่อาจเกิดขึ้น

bin\kafka-topics.sh --bootstrap-server localhost:9092 --list

WARN [AdminClient clientId=adminclient-1] 
  Connection to node -1 (localhost/127.0.0.1:9092) could not be established.
  Node may not be available. (org.apache.kafka.clients.NetworkClient)
  • ตรวจสอบว่า Kafka service กำลังทำงานอยู่ (ps ax | grep kafka, netstat -tlnp | grep 9092)
  • ตรวจสอบปัญหา firewall
  • ยืนยัน port / IP ให้ถูกต้อง
Apache Kafka เบื้องต้น

ปัญหาที่พบบ่อยอื่นๆ

  • Consumer:
    • ใช้ --from-beginning หากต้องการอ่านข้อความเก่า
    • อย่าลืมใช้ --max-messages เพื่อจำกัดจำนวนข้อความที่อ่าน
  • เครื่องมือทุกตัว:
    • อย่าลืมระบุ --bootstrap-server
    • ข้อความแสดงข้อผิดพลาดส่วนใหญ่ชัดเจนและชี้ไปยังแนวทางแก้ไข
    • เครื่องมือมีตัวเลือก --help สำหรับรายละเอียดเพิ่มเติม
Apache Kafka เบื้องต้น

มาฝึกกันเถอะ!

Apache Kafka เบื้องต้น

Preparing Video For Download...