On this page
מערך שיעור: Ingestion Service
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הסטודנטים יבנו Ingestion Service עם Redis Temp Storage, כשירות ראשון בפרויקט הסיום.
בסוף השיעור הסטודנטים צריכים: לממש endpoint קליטה+פרסום, להסביר את ההבדל בין Temp Storage ל-Cache-Aside, ולהכיר את מושג ה-Backpressure ברמת מודעות.
דגש קריטי: זהו פרויקט הסיום של הקורס — הדגישו את זה, ותנו לסטודנטים תחושת “פרק אחרון” ולא “עוד יחידה”.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הציגו את מבנה הצנרת השלמה (3 שירותים) — פרויקט סיום |
| הדגמה: Ingestion בסיסי | 20 דקות | REST+Kafka, דומה ל-Collector |
| Redis Temp Storage | 25 דקות | הבדל מ-Cache-Aside, TTL |
| Backpressure (מודעות) | 10 דקות | לא ממומש, רק להכיר |
| השוואה ל-Collector Service | 10 דקות | דמיון ושוני |
| תרגול מודרך | 20 דקות | תרגיל 1+2 |
דגשים להעברת השיעור
- ההשוואה המפורשת ל-Collector Service (מהפרויקט הקודם) חשובה — סטודנטים צריכים לזהות שזה לא “עוד נושא חדש” אלא יישום מוכר בהקשר מעט שונה.
- ההבחנה Temp Storage מול Cache-Aside היא הנקודה המושגית העדינה ביותר — הקדישו לה זמן עם דוגמאות משתי הגישות זו לצד זו.
- אפשר לתת ל-Backpressure רק אזכור קצר — אין ציפייה למימוש מלא, רק מודעות למונח ולסיכון.
מושגים
Ingestion — נקודת כניסה לצנרת נתונים. Temp Storage — מצב אחרון ידוע ב-Redis, לגישה מיידית. Backpressure — עומס כשקצב קליטה עולה על קצב עיבוד.
תרגיל חשיבה
שאלת פתיחה: “יש לכם Ingestion Service שקולט נתוני חיישן כל שנייה. Processing Service (השיעור הבא) לוקח לו 5 שניות לעבד כל נתון. מה קורה עם הזמן?”
מהלך: הובילו לתובנה: הפער בין קצב קליטה לקצב עיבוד (5x!) גורם להצטברות בלתי-נגמרת ב-Kafka Topic — זו בדיוק ההגדרה המעשית של Backpressure. שאלו: “מה הפתרונות האפשריים?” (יותר Partitions ומופעי Consumer, קצב קליטה מוגבל, או Sliding Window שזורק ישן) — לא צריך תשובה מלאה, רק מודעות לבעיה.
מה המרצה מראה בסוף: הראו (אם יש כלי מתאים) את גודל ה-Consumer Lag על Topic (כמה הודעות ממתינות שטרם נצרכו) כשקצב הקליטה עולה על קצב העיבוד — מספר גדל ומצטבר הוא ההוכחה החיה לBackpressure.