כבלי רשת מחוברים לציוד תקשורת, המחשה למצב Queue ב-AWS Lambda וב-Apache Kafka
Vladimir Srajber / Pexels

AWS Lambda מעבדת Kafka במקביל בלי תלות במספר המחיצות

AWS הוסיפה ל־Lambda מצב צריכה חדש עבור Apache Kafka: במקום להגביל את מספר הצרכנים למספר המחיצות, מצב Queue משתמש ב־Kafka Share Groups ומאפשר לעבד כמה רשומות מאותה מחיצה במקביל. היכולת מיועדת לעומסים שבהם מהירות העיבוד חשובה יותר משמירת הסדר.

מה משתנה לעומת מצב Stream

במצב Stream, שהוא עדיין ברירת המחדל, כל מחיצה מוקצית לצרכן אחד ונשמר סדר הרשומות בתוך המחיצה. לכן נושא עם עשר מחיצות מוגבל בדרך כלל לעשרה צרכנים מקבילים. במצב Queue, כמה צרכנים יכולים לקרוא מאותה מחיצה באמצעות Share Groups, כך שהמקביליות גדלה בהתאם לצבר העבודה ולא למבנה ה־topic.

  • כל Event Poller יכול להגיע לעד 10 הפעלות Lambda מקבילות, לעומת עד 5 במצב Stream.
  • רשומה איטית או כושלת אינה חייבת לעכב את יתר הרשומות שמאחוריה באותה מחיצה.
  • אין צורך לשנות producers, את קוד הפונקציה או את הגדרת המחיצות.
  • מצב Queue אינו שומר על סדר הרשומות בתוך המחיצה.

דרישות ומגבלות שחשוב להכיר

היכולת זמינה ב־Event Source Mapping של Kafka בניהול עצמי, כולל שירותים מנוהלים כגון Confluent Cloud, כל עוד האשכול תומך ב־Kafka 4.2 ומעלה ו־Share Groups מופעלים. מוסיפים את הפרמטר ConsumptionMode=Queue בעת יצירת ה־mapping.

לפי תיעוד AWS CLI, אי אפשר לשנות את ConsumptionMode לאחר יצירת ה־Event Source Mapping. כדי לעבור בין Stream ל־Queue יש ליצור mapping חדש. במצב Queue גם לא נתמכים הפרמטרים StartingPosition,‏ StartingPositionTimestamp ו־MaximumBatchingWindowInSeconds.

למי זה מתאים

  • עיבוד תמונות וסרטונים לאחר העלאה.
  • זיהוי הונאות, העשרת נתונים והסקת AI.
  • שליחת התראות ועיבוד telemetry.
  • כל עומס שבו כל אירוע עצמאי ואין תלות בסדר ההגעה.

לעומת זאת, אם הסדר בתוך המחיצה הוא חלק מהלוגיקה העסקית — למשל עדכוני יתרה או state machine — מצב Stream נשאר הבחירה הבטוחה יותר.

רשימת בדיקה לפני מעבר

  • לוודא שהאשכול עובד עם Kafka 4.2 ומעלה וש־Share Groups מופעלים.
  • לבדוק שהצרכנים idempotent ויכולים להתמודד עם retries.
  • לאמת שהמערכת אינה תלויה בסדר בתוך המחיצה.
  • להקים mapping חדש, לבדוק עומס וכשלים, ורק לאחר מכן להסיר את הישן.
  • להביא בחשבון חיוב EPU אם משתמשים ב־Provisioned Mode.

מקורות

קרדיט תמונה: Vladimir Srajber / Pexels. מקור: Pexels. רישיון Pexels Free מתיר שימוש באתר, בסושיאל ובקמפיינים שיווקיים וכן עריכה. התמונה היא המחשה בלבד ואינה מעידה על קשר או חסות מצד AWS או Apache.

דילוג לתוכן