สถาปัตยกรรมของ Kafka

Apache Kafka เบื้องต้น

Mike Metzger

Data Engineering Consultant

ส่วนประกอบของ Kafka

  • Kafka server
    • คลัสเตอร์ที่ประกอบด้วยคอมพิวเตอร์หนึ่งเครื่องขึ้นไป
    • จัดเก็บข้อมูล
    • จัดการการสื่อสาร
    • สามารถเชื่อมต่อกับระบบอื่นได้ (ฐานข้อมูล, ล็อก ฯลฯ)
  • Kafka clients
    • อ่านข้อมูลผ่าน Kafka consumer
    • เขียนข้อมูลผ่าน Kafka producer
    • ประมวลผลข้อมูลตามที่ต้องการ
Apache Kafka เบื้องต้น

Kafka server

  • การจัดเก็บ หรือที่รู้จักในชื่อ Kafka Broker
    • ข้อมูลที่ producer เขียนจะถูกจัดเก็บและจัดระเบียบผ่าน topic
    • topic จะถูกแบ่งพาร์ติชัน หรือแยกจัดเก็บเป็นส่วนย่อย
    • ข้อความ/อีเวนต์ถูกเก็บในพาร์ติชันตาม event id
    • ข้อความถูกดึงออกตามลำดับที่เขียนเข้ามา

การจัดเก็บและพาร์ติชันของ Kafka

1 Image sourced from https://kafka.apache.org/intro
Apache Kafka เบื้องต้น

พาร์ติชันและการจำลองข้อมูล

  • Kafka รองรับความทนทานต่อความผิดพลาด
  • หากระบบใดออฟไลน์ ระบบอื่นจะให้บริการข้อมูลแทนได้
  • จำนวนความผิดพลาดสูงสุดที่รับได้ = replication factor - 1
  • replication factor สูงสุด = จำนวนเซิร์ฟเวอร์
  • การจำลองจัดการผ่านการคัดลอกพาร์ติชัน

Kafka cluster, brokers, and topics.png

Apache Kafka เบื้องต้น

ตัวอย่าง

Kafka cluster, brokers, and topics.png

  • Kafka cluster มี 3 broker
  • กำหนด 3 topic
  • replication factor 2x = สูญเสียได้ 1 ระบบ
  • Broker 1 มีสำเนา Topic 1 และ Topic 2
  • Broker 2 มีสำเนา Topic 2 และ Topic 3
  • Broker 3 มีสำเนา Topic 1 และ Topic 3
  • แต่ละ topic กระจายอยู่ใน 2 broker ภายในคลัสเตอร์
Apache Kafka เบื้องต้น

ตัวอย่างเมื่อมีความผิดพลาด 1 จุด

Kafka cluster, brokers, and topics - 1 failed broker.png

  • Broker 2 ล้มเหลว
  • replication factor 2x
    • 2 - 1 = รับมือกับระบบล้มเหลวได้ 1 ระบบ
  • แต่ละ topic ยังมีสำเนาอย่างน้อยหนึ่งชุดในคลัสเตอร์
Apache Kafka เบื้องต้น

ตัวอย่างเมื่อมีความผิดพลาด 2 จุด

Kafka cluster, brokers, and topics - 2 failed brokers.png

  • broker ล้มเหลว 2 ตัว
  • replication factor 2x
  • ความผิดพลาดเกินกว่าที่รองรับได้ (1 ระบบ)
  • Topic 2 ไม่สามารถใช้งานได้ในคลัสเตอร์
    • Topic 1 และ Topic 3 ยังใช้งานได้ จึงไม่ใช่ความล้มเหลวทั้งหมด
Apache Kafka เบื้องต้น

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

Apache Kafka เบื้องต้น

Preparing Video For Download...