18 คะแนน โดย xguru 2021-06-18 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • Apache Kafka ที่อธิบายให้ง่ายด้วยภาพประกอบราวกับนิทาน

→ มีแอนิเมชันสั้น ๆ รวมอยู่ด้วย

→ เว็บพรีเซนเทชันที่สร้างด้วย Reveal.js

  • ใช้นากที่อาศัยอยู่ในป่าเป็นตัวอย่างเพื่ออธิบาย Kafka, อีเวนต์, ท็อปปิก, สตรีม, โปรดิวเซอร์, คอนซูเมอร์/คอนซูเมอร์กรุ๊ป, พาร์ทิชัน, Kafka Connector เป็นต้น

ในป่าที่มีแม่น้ำไหลผ่าน มีครอบครัวนากอยู่สองครอบครัว

เวลาทั้งสองครอบครัวจะแชร์ข่าวอย่างงานเลี้ยงวันเกิดหรือผู้มาเยือน ก็จะเจอกันโดยตรงแล้วค่อยคุยกัน (Tightly Coupled)

เมื่อนากย้ายเข้ามาอยู่ในป่ามากขึ้น อีเวนต์ที่ต้องแชร์ก็เพิ่มขึ้นเรื่อย ๆ (Scalability Problem)

พอการที่นากต้องมาเจอกันโดยตรงเพื่อแชร์อีเวนต์เริ่มยากขึ้น พวกมันจึงเสนอไอเดียให้ใช้ Kafka ซึ่งเป็นแม่น้ำสายใหญ่ที่ไหลอยู่ในป่าเพื่อสื่อสารกัน (Stream)

แนวคิดคือเขียนอีเวนต์ที่ต้องการส่งลงบนกระดาษ พร้อมข้อมูลอย่าง header/key/value/time แล้วปล่อยให้ล่องไปตามทางที่ตรงกับหัวข้อ (Record of the Event, Topics)

ตอนแรกพวกมันใส่กระดาษลงในขวดแก้วแล้วส่งไป แต่ก็ลอยหายไปตามน้ำ เลยหันมาใช้ Glass Float* ที่ไม่ลอยหายและอยู่กับที่ได้เสมอ (Persistent)

ตอนนี้จึงเกิดนากขึ้นมาสองประเภท คือ Producer และ Consumer

มันทำงานได้ดีอยู่พักหนึ่ง แต่เมื่ออีเวนต์ในแม่น้ำมีมากขึ้น พวกมันก็เริ่มวางก้อนหินใหญ่เพื่อแบ่งแม่น้ำออกเป็นส่วน ๆ แล้วใช้งาน (Partition)

แต่ละครอบครัวนากกลายเป็น Consumer Group และยังเลือก Group Leader กันด้วย

ถ้านากตัวหนึ่งป่วย ก็จะมีสมาชิกคนอื่นในกลุ่มมารับข้อความแทน (Highly Available)

นอกจากนี้ครอบครัวนากยังจัดการกับเหตุการณ์ไม่คาดคิดได้ด้วย (Fault Tolerant)

พวกนากยังสร้างถนนเพื่อให้ชุมชนอื่นส่งข้อความเข้ามายังแม่น้ำ Kafka ได้ด้วย (Kafka Connector)

  • Glass Float : ลูกแก้วลอยน้ำ เป็นอุปกรณ์ที่ใช้พยุงไม่ให้แหจับปลาลอยหายไป

2 ความคิดเห็น

 
nicewook 2021-06-18

ว้าว อันนี้น่ารักมากเลย แถมยังมีประโยชน์อีกด้วย

 
xguru 2021-06-18

หนังสือที่วาดภาพอธิบายคล้ายๆ กัน