ระบบ

อะไร Kafka อะไร Pub/Sub

มิ.ย. 2021

จากประสบการณ์ที่คลุกคลีตีโมงกับ Kafka เอย Pub/Sub เอย มาเป็นปีข้ามปี มีพี่ๆ เพื่อนๆ น้องๆ ที่ไม่ใช่เทคนิคอลมาถามกิมเรื่อยๆ เสมอๆ ว่า “อะไร คือ Kafka นะ ?” “อะไร คือ Pub/Sub นะ ?”

วันนี้กิมนึกครึ้มใจอยากจะเขียนออกมาให้เป็นการเล่าให้ฟังแบบเข้าใจง่าย จับต้องได้นะคะ ซึ่งถ้าใครอยากอ่านแบบเทคนิคอลจ๋าๆ ขอให้ข้ามไปที่บทความอื่นเลยค่าาาาา อันนี้ไม่ได้ลงเทคฯ เลยสักกะนิดค่ะ

มาเริ่มกันที่ สมมุติว่า 
- คุณต้องการส่งส้มให้กิม 100 ผล 
- และสมมุติว่าคุณมี 10 มือ 
- และกิมมี 2 มือ รับมือต่อมือไม่ทันแน่ๆ จร้า
- กิมเลยขอให้คุณผู้มือ 10 มือ ส่งส้มมาวางไว้ในกล่องใบนึง แล้วเด๋วกิมจะค่อยๆ ขนส้มจากกล่องนี้ ด้วยสองมือของกิมไปจัดการต่ออย่างสบายใจ (พี่กิมไม่รีบ)

credit by — kimwannachar

จากภาพ ขออธิบายต่อว่า ถ้าเป็น system “คุณ” คุยกับ system “กิมเอง” ถ้า call service ส่งข้อมูลหากันแล้วไม่มีกล่องมาพักของไว้ จะเกิดสิ่งที่เรียกว่า แหก ค่ะ เพราะ performance ของสองระบบไม่เท่ากัน จำเป็นต้องมีกล่อง ที่เรารู้จักกันในนาม message queue system มาพักของไว้ เพื่อให้ flow การส่งข้อมูลเดินต่อไปได้อย่างราบรื่นงดงามค่ะ

ซึ่ง Kafka และ Pub/Sub ก็เป็น Message Queue System เหมือนกันค่ะ โดย Kafka เป็นของค่าย Apache ส่วน Pub/Sub เป็นของค่าย google ค่ะ มีหลักการใช้งานเหมือนกัน ต่างกันในรายละเอียดปลีกย่อยในการนำไปใช้

ขอบคุณค่ะที่อ่านมาจนจบ และหวังว่าจะมีประโยชน์แก่คุณผู้อ่านค่ะ

บทความนี้เผยแพร่ครั้งแรกบน Medium