สอบถามหลักสูตรเลือกช่องทางที่สะดวก ทีมงานตอบเองทุกช่อง
LINE @itgeniusตอบเร็วที่สุด · จ–ศ 9:00–17:00 น.
โทรศัพท์
02-570-8449สำนักงาน088-807-9770มือถือ
อีเมลและโซเชียล
contact@itgenius.co.thสำหรับใบเสนอราคาและเอกสารFacebookitgeniusonlineYouTubeitgeniusengขอคำปรึกษาจัดอบรมให้ทีม
ฐานข้อมูล · DBC-45

Apache Kafka สำหรับระบบ Event-Driven

หลักสูตร Apache Kafka สำหรับระบบ Event-Driven เป็นการอบรมออกแบบระบบ Event-Driven ด้วย Kafka ครอบคลุม Broker และ Partition, Producer, Consumer Group, Schema Registry, Kafka Connect และ Kafka Streams พร้อมลงมือกับ Cluster หลาย Broker เหมาะกับนักพัฒนา Microservices, Data Engineer, สถาปนิกระบบ และ DevOps

อัปเดตล่าสุด
ราคาเริ่มต้น 11,250 บาท / ท่าน 12,500 −10% ยังไม่รวม VAT 7% · มีราคาหมู่คณะ
PDFดาวน์โหลด Course Outline
  • ระยะเวลา18 ชั่วโมง · 3 วัน
  • รูปแบบออนไซต์ / ออนไลน์สด
  • รอบถัดไปเปิดตามคำขอ
  • ใบรับรองมี Certificate

ภาพรวมหลักสูตร

ระบบที่เชื่อมต่อกันแบบเรียกตรง (Point-to-Point) จะพันกันยุ่งเหยิงเมื่อมีบริการมากขึ้น และเมื่อระบบปลายทางล่ม ข้อมูลก็หายไปด้วย Apache Kafka แก้ปัญหานี้ด้วยการทำหน้าที่เป็นศูนย์กลางรับส่งเหตุการณ์ (Event) ที่เก็บข้อมูลไว้อย่างทนทาน ให้ผู้ผลิตข้อมูลกับผู้บริโภคข้อมูลแยกกันเป็นอิสระ ระบบปลายทางที่ล่มสามารถกลับมาอ่านข้อมูลต่อจากจุดเดิมได้ และเพิ่มผู้บริโภคใหม่ได้โดยไม่กระทบของเดิม

หลักสูตรนี้พาผู้เรียนใช้ Kafka ตั้งแต่แนวคิดจนถึงระดับใช้งานจริง ครอบคลุมสถาปัตยกรรม Broker และ Partition, การออกแบบ Topic และการเลือก Key ให้ข้อมูลกระจายตัวดี, การเขียน Producer พร้อมเข้าใจการรับประกันการส่งข้อมูล, การทำงานของ Consumer Group และการจัดการ Offset, การจัดการรูปแบบข้อมูลด้วย Schema, การเชื่อมระบบภายนอกด้วย Kafka Connect, การประมวลผลสตรีมด้วย Kafka Streams ไปจนถึงความน่าเชื่อถือ ความปลอดภัย และการเฝ้าระวังในการใช้งานจริง (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

สิ่งที่คุณจะได้รับ

  • เข้าใจแนวคิด Event-Driven Architecture และเมื่อใดควรใช้แทนการเรียก API ตรง
  • อธิบายสถาปัตยกรรมของ Kafka: Broker, Topic, Partition, Replica และ Offset
  • ติดตั้งและใช้งาน Kafka Cluster พร้อมเครื่องมือบรรทัดคำสั่งที่จำเป็น
  • ออกแบบ Topic และเลือก Key ให้ข้อมูลกระจายตัวเหมาะสมและรักษาลำดับได้
  • เขียน Producer และเข้าใจการรับประกันการส่ง (Acknowledgement) และ Idempotent Producer
  • เขียน Consumer และเข้าใจการทำงานของ Consumer Group, Rebalance และการจัดการ Offset
  • จัดการรูปแบบข้อมูลและการเปลี่ยนแปลงโครงสร้างด้วย Schema อย่างปลอดภัย
  • เชื่อมต่อฐานข้อมูลและระบบภายนอกด้วย Kafka Connect โดยไม่ต้องเขียนโค้ดมาก
  • ประมวลผลข้อมูลแบบสตรีมด้วย Kafka Streams และวางระบบให้ปลอดภัยและเฝ้าระวังได้

หลักสูตรนี้เหมาะสำหรับ

  • นักพัฒนาซอฟต์แวร์ที่ออกแบบระบบหลายบริการ (Microservices)
  • Data Engineer ที่ต้องส่งข้อมูลแบบเรียลไทม์ระหว่างระบบ
  • สถาปนิกระบบที่ต้องออกแบบการเชื่อมต่อระหว่างระบบให้ยืดหยุ่นและทนทาน
  • ผู้ดูแลระบบและ DevOps ที่ต้องติดตั้งและดูแล Kafka Cluster
  • ทีมที่มีปัญหาระบบผูกกันแน่นเกินไปและข้อมูลหายเมื่อระบบปลายทางล่ม

พื้นฐานของผู้เข้าอบรม

  • เข้าใจการทำงานของระบบงานและการเชื่อมต่อระหว่างระบบในระดับพื้นฐาน
  • อ่านและเขียนโค้ดได้อย่างน้อยหนึ่งภาษา (ตัวอย่างในคลาสใช้ Python เป็นหลัก)
  • ใช้งาน Command Line และเข้าใจแนวคิดเครือข่ายพื้นฐาน
  • หากเคยใช้ Docker มาบ้างจะช่วยให้ทำ Lab ได้ราบรื่นขึ้น

หัวข้อการฝึกอบรม

รายละเอียดหลักสูตร

อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง รูปแบบบรรยายพร้อมปฏิบัติจริงกับ Kafka Cluster แบบหลาย Broker (Hands-on Lab) ระดับ Intermediate ผู้เรียนจะได้ Lab Guide, โค้ด Producer, Consumer และ Kafka Streams ตัวอย่างครบทุก Lab พร้อมไฟล์ Docker Compose สำหรับตั้ง Cluster และ Checklist การนำ Kafka ขึ้น Production กลับไปใช้งานจริง Kafka เป็นโอเพนซอร์สที่นำไปใช้ในองค์กรได้โดยไม่มีค่าลิขสิทธิ์

Day 1 แนวคิดและสถาปัตยกรรม Kafka

Section 1: แนวคิด Event-Driven Architecture

  • ปัญหาของการเชื่อมระบบแบบเรียกตรงเมื่อบริการเพิ่มขึ้นและระบบปลายทางล่ม
  • แนวคิด Event, Message Queue และ Event Streaming และความต่างที่สำคัญ
  • กรณีใช้งานจริง: การรวมข้อมูลระหว่างระบบ, การประมวลผลเรียลไทม์ และการบันทึกเหตุการณ์
  • เมื่อใดควรใช้ Kafka และเมื่อใดการเรียก API ตรงยังเหมาะสมกว่า

Section 2: สถาปัตยกรรมของ Apache Kafka

  • องค์ประกอบหลัก: Broker, Topic, Partition, Replica, Leader และ Follower
  • แนวคิด Log แบบต่อท้าย (Append-only Log) และ Offset ที่ทำให้ย้อนอ่านข้อมูลได้
  • การทำสำเนาข้อมูล (Replication) และการทนต่อความล้มเหลวของ Broker
  • การกำหนดระยะเวลาเก็บข้อมูล (Retention) และการบีบอัด Log (Compaction)

Section 3: การติดตั้งและใช้งาน Cluster

  • การติดตั้ง Kafka Cluster ด้วย Docker Compose และการตรวจสอบสถานะ Cluster
  • เครื่องมือบรรทัดคำสั่งสำหรับสร้าง Topic ส่งข้อความ และอ่านข้อความ
  • การใช้ UI ดู Topic, Partition และ Consumer Group
  • Lab: ติดตั้ง Cluster สร้าง Topic แรก และส่งและอ่านข้อความจากบรรทัดคำสั่ง

Section 4: การออกแบบ Topic และ Partition

  • หลักการตั้งชื่อ Topic และการกำหนดจำนวน Partition ให้เหมาะกับปริมาณงาน
  • การเลือก Key เพื่อกระจายข้อมูลและรักษาลำดับของข้อมูลที่เกี่ยวข้องกัน
  • ผลของจำนวน Partition ต่อความเร็ว ความขนาน และการเพิ่ม Consumer ในอนาคต
  • Lab: ออกแบบและสร้าง Topic สำหรับโจทย์ธุรกิจพร้อมทดสอบการกระจายข้อมูล
Day 2 Producer Consumer และการเชื่อมระบบ

Section 5: Producer และการรับประกันการส่ง

  • การเขียน Producer และการตั้งค่าที่สำคัญ เช่น acks, retries และ batching
  • การรับประกันการส่ง: At most once, At least once และ Exactly once
  • Idempotent Producer และการใช้ Transaction เมื่อต้องการความถูกต้องสูง
  • Lab: เขียน Producer ส่งข้อมูลและทดสอบพฤติกรรมเมื่อ Broker ไม่ตอบสนอง

Section 6: Consumer และ Consumer Group

  • การเขียน Consumer และการทำงานของ Consumer Group ในการแบ่ง Partition
  • การจัดการ Offset: การ Commit อัตโนมัติเทียบกับการ Commit เอง และผลต่อข้อมูลซ้ำหรือหาย
  • การเกิด Rebalance และผลกระทบ และแนวทางลดปัญหา
  • Lab: เพิ่มและลด Consumer ในกลุ่มและสังเกตการกระจาย Partition ใหม่

Section 7: Schema และการจัดการรูปแบบข้อมูล

  • รูปแบบข้อมูลที่ใช้บ่อย: JSON และ Avro และข้อดีข้อเสียของแต่ละแบบ
  • แนวคิด Schema Registry และการรักษาความเข้ากันได้เมื่อโครงสร้างข้อมูลเปลี่ยน
  • แนวปฏิบัติการออกแบบ Event ให้ระบบอื่นนำไปใช้ต่อได้ยาวนาน
  • Lab: กำหนด Schema ให้ Event และทดสอบการเปลี่ยนโครงสร้างโดยไม่ทำให้ระบบพัง

Section 8: Kafka Connect เชื่อมระบบภายนอก

  • แนวคิด Kafka Connect และความต่างระหว่าง Source Connector และ Sink Connector
  • การดึงข้อมูลจากฐานข้อมูลเข้าสู่ Kafka และการส่งข้อมูลออกไปยังปลายทาง
  • แนวคิด Change Data Capture สำหรับติดตามการเปลี่ยนแปลงข้อมูลในฐานข้อมูล
  • Lab: ตั้งค่า Connector ดึงข้อมูลจากฐานข้อมูลเข้าสู่ Topic โดยไม่ต้องเขียนโค้ด
Day 3 Streams ความน่าเชื่อถือ และ Production

Section 9: การประมวลผลสตรีมด้วย Kafka Streams

  • แนวคิดการประมวลผลข้อมูลระหว่างทาง: กรอง แปลง และรวมข้อมูลแบบเรียลไทม์
  • การรวมข้อมูลตามช่วงเวลา (Windowing) และการนับหรือสรุปค่าแบบต่อเนื่อง
  • ความต่างระหว่าง Stream และ Table และการเชื่อมข้อมูลสองสตรีมเข้าด้วยกัน
  • Lab: สร้างงานประมวลผลสตรีมที่สรุปข้อมูลแบบเรียลไทม์จาก Topic

Section 10: ความน่าเชื่อถือและประสิทธิภาพ

  • การตั้งค่า Replication และ Minimum In-Sync Replica เพื่อไม่ให้ข้อมูลหาย
  • การจัดการเมื่อ Broker ล่มและการกู้คืน และการทดสอบสถานการณ์จริง
  • การปรับแต่งประสิทธิภาพฝั่ง Producer และ Consumer และการจัดการ Consumer Lag
  • Lab: จำลอง Broker ล่มและสังเกตว่าระบบยังทำงานต่อได้อย่างไร

Section 11: ความปลอดภัยและการเฝ้าระวัง

  • การเข้ารหัสการเชื่อมต่อและการยืนยันตัวตนของ Client
  • การกำหนดสิทธิ์การเข้าถึง Topic ตามหลัก Least Privilege
  • การเฝ้าระวัง Cluster: Consumer Lag, สถานะ Broker และ Metric สำคัญที่ต้องดู
  • การวางแผนดูแล Cluster และการอัปเกรดโดยไม่ให้บริการหยุด

Section 12: Capstone และการนำไปใช้จริง

  • โจทย์: ออกแบบและสร้างระบบ Event-Driven สำหรับกระบวนการธุรกิจหนึ่งตั้งแต่ต้นจนจบ
  • การนำเสนอสถาปัตยกรรม Topic และเหตุผลของการออกแบบ
  • แนวทางการนำ Kafka ไปใช้จริงในองค์กรและการเริ่มจากระบบเล็กก่อนขยาย
  • Workshop: นำเสนอระบบที่สร้างและทบทวนการออกแบบร่วมกัน

รอบอบรมและรูปแบบการอบรม

สำหรับบุคคล — รอบอบรมทั่วไป

ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770

สำหรับองค์กร — In-house / Private Training

  • ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
  • เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
  • ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
ขอใบเสนอราคาอบรมองค์กร

วิทยากรผู้สอน

คำถามที่พบบ่อย

Apache Kafka ต่างจาก Message Queue ทั่วไปอย่างไร

Message Queue ทั่วไปมักลบข้อความทิ้งเมื่อผู้รับประมวลผลแล้ว และหนึ่งข้อความมักไปถึงผู้รับรายเดียว ส่วน Kafka เก็บข้อมูลเป็น Log แบบต่อท้ายตามระยะเวลา Retention ที่กำหนด แต่ละ Consumer Group อ่านตาม Offset ของตัวเอง หลายระบบจึงอ่านข้อมูลชุดเดียวกันได้อย่างอิสระและย้อนอ่านใหม่ได้ เหมาะกับงาน Event Streaming ที่ต้องรองรับปริมาณสูงและกระจายข้อมูลให้หลายระบบ

Partition และ Consumer Group ใน Kafka ทำงานร่วมกันอย่างไร

Topic ถูกแบ่งเป็นหลาย Partition เพื่อให้อ่านเขียนแบบขนานได้ ภายใน Consumer Group เดียวกัน แต่ละ Partition จะถูกอ่านโดย Consumer เพียงตัวเดียว จำนวน Partition จึงเป็นเพดานของจำนวน Consumer ที่ทำงานพร้อมกันในกลุ่ม เมื่อเพิ่มหรือลด Consumer จะเกิด Rebalance เพื่อแบ่ง Partition ใหม่ ข้อความที่มี Key เดียวกันจะไปอยู่ Partition เดียวกัน จึงรักษาลำดับของข้อมูลที่เกี่ยวข้องกันได้

ตั้งค่า Kafka Producer ให้ข้อมูลไม่หายและไม่ซ้ำทำอย่างไร

ตั้ง acks=all ให้ Broker ตอบรับเมื่อข้อมูลถูกทำสำเนาครบตาม min.insync.replicas แล้ว เปิด retries ให้ส่งซ้ำอัตโนมัติเมื่อเครือข่ายสะดุด และเปิด enable.idempotence เพื่อป้องกันข้อความซ้ำจากการส่งซ้ำ ถ้าต้องการ Exactly once ข้ามหลาย Topic ให้ใช้ Transaction ร่วมด้วย ฝั่ง Consumer ควร Commit Offset หลังประมวลผลเสร็จ และออกแบบการประมวลผลให้รันซ้ำแล้วผลไม่เปลี่ยน

หลักสูตร Apache Kafka สำหรับระบบ Event-Driven เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับนักพัฒนาที่ออกแบบระบบแบบ Microservices Data Engineer ที่ต้องส่งข้อมูลเรียลไทม์ระหว่างระบบ สถาปนิกระบบที่ต้องออกแบบการเชื่อมต่อให้ยืดหยุ่นและทนทาน และผู้ดูแลระบบหรือ DevOps ที่ต้องดูแล Kafka Cluster ควรอ่านและเขียนโค้ดได้อย่างน้อยหนึ่งภาษา ซึ่งตัวอย่างในคลาสใช้ Python เป็นหลัก ใช้ Command Line ได้ และเข้าใจเครือข่ายพื้นฐาน

เรียนจบหลักสูตร Apache Kafka สำหรับระบบ Event-Driven แล้วทำอะไรได้บ้าง

ติดตั้ง Kafka Cluster หลาย Broker ออกแบบ Topic Partition และ Key ให้เหมาะกับงาน เขียน Producer และ Consumer พร้อมเลือกระดับการรับประกันการส่ง จัดการ Offset และ Rebalance กำหนด Schema ด้วย Schema Registry เชื่อมฐานข้อมูลด้วย Kafka Connect ประมวลผลสตรีมด้วย Kafka Streams และตั้งค่าความน่าเชื่อถือกับความปลอดภัย ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

จัดอบรมหลักสูตร Apache Kafka สำหรับระบบ Event-Driven ให้ทีมในองค์กรได้ไหม

ได้ หลักสูตรนี้จัดเป็นการอบรมแบบ In-house ให้ทีมในองค์กรได้ และปรับตัวอย่างให้ตรงกับงานของทีม เช่น ออกแบบ Topic และ Event จากระบบงานที่ทีมต้องเชื่อมต่อกันจริง ขอใบเสนอราคาได้จากหน้านี้ หรือติดต่อทาง LINE @itgenius โทร 02-570-8449