השוואת אותו מסלול
דוגמה דמיונית בקילובייט עשרוני: תחילה 100 קריאות של 100 kB, ובהמשך 20 של 50 kB. הנפח יורד מ־10000 ל־1000 kB, ירידה של 90 %. אין בכך הוכחה לירידה זהה בהשהיה. החישוב כולל רק את תוכן התשובות, ללא בקשות וכותרות.
| מדד דמיוני | מקורי | חלופה |
|---|---|---|
| קריאות | 100 | 20 |
| נפח לתשובה | 100 kB | 50 kB |
| נפח כולל | 10000 kB | 1000 kB |
| משך המסלול | יש למדוד | יש למדוד |
לצמצם לפני הוספת מקביליות
- בקשו רק שדות נחוצים ופעלו לפי חוזה הדפדוף. אצוות דורשות גבולות וטיפול בתוצאות חלקיות; עמוד גדול אינו תמיד מהיר יותר.
- השתמשו שוב בחיבורים ובתשובות כשההקשר והעדכניות מאפשרים. הגבילו מקביליות ומדדו גם תורים ועבודת שרת.
- קבעו מועד סיום כולל ומספר ניסיונות מרבי. פזרו ניסיונות לכשל זמני עם רכיב המתנה אקראי ובדקו אילו שכבות כבר מנסות שוב.
לא לבצע פעולה שהושלמה פעמיים
פקיעת זמן בצד הלקוח אינה מוכיחה ביטול בשרת. לפני יצירה או תשלום חוזרים בדקו מצב ומנגנון אידמפוטנטיות של הספק. השוו זמן, שגיאות ונכונות בעומס מייצג.
מקורות ראשוניים
- IETF RFC 9110 — HTTP Semantics [EN]
- AWS Builders’ Library — Timeouts, retries and backoff with jitter [EN]
בדיקת עבודה מאחורי תגובת API אחת.
שאילתת GraphQL אחת יכולה להפעיל קריאות רבות במורד הזרם. השהייה גלויה ללקוח עשויה להסתיר את עלות הרזולוטורים, הרשימות והקשרים שעברו מעבר.
- מעקב אחר פעולה מהלקוח לשירותי במורד הזרם.
- השווה עלות שדה ונפח שימושי בפועל.
- רשימות קשורות ושאילתות חוזרות לפני אחסון במטמון.
מקור ראשוני: OWASP — GraphQL Cheat Sheet. שיטה קשורה: קריאת המדריך המעשי.
Retry-After: המתנה, תקציב והחלטת ניסיון חוזר
הערות המקורות המפורטות זמינות באנגלית במהדורה זו.
Reducing API calls includes controlling repetition
An API optimisation should count attempts reaching the dependency rather than only requests initiated by the screen.
- Trace SDK and proxy retries under one logical identifier.
- Avoid shortening server instructions merely to fit a budget.
- Verify an uncertain write’s state before creating a new intention.
Explore Retry-After and the retry model →
References reviewed · RFC 9110 · §9.2.2, §10.2.3 · RFC 6585 · §4 · AWS
