כללי המדיניות של מכסות ו-SpikeArrest – לא בטוחים באיזה מהם כדאי להשתמש כדי להגביל את הקצב של הבקשות בצורה הטובה ביותר? תרשים ההשוואה מופיע בהמשך.
מכסה
SpikeArrest
אפשר להשתמש בה כדי:
להגביל את מספר החיבורים שהאפליקציות יכולות ליצור לקצה העורפי של שרת ה-proxy של ה-API בפרק זמן מסוים.
הגנה על הקצה העורפי היעד של שרת ה-proxy של ה-API מפני עליות חדות חדות בתנועה והתקפות מניעת שירות (DoS).
אין להשתמש בה כדי:
אין להשתמש בו כדי להגן על הקצה העורפי היעד של שרת ה-proxy של ה-API מפני עליות חדות בנפח התנועה.
לשם כך, משתמשים במדיניות SpikeArrest.
אין להשתמש בו כדי לספור ולגביל את מספר החיבורים שאפליקציות יכולות ליצור לקצה העורפי היעד של שרת ה-proxy של ה-API בפרק זמן מסוים.
לשם כך, משתמשים במדיניות המכסות.
שמירת ספירה?
כן
לא
שיטות מומלצות לקישור המדיניות:
צריך לצרף אותו ל-ProxyEndpoint Request PreFlow, בדרך כלל אחרי אימות המשתמש.
כך המדיניות תוכל לבדוק את מונה המכסות בנקודת הכניסה של שרת ה-API המחובר.
צריך לצרף אותו ל-ProxyEndpoint Request PreFlow, בדרך כלל בתחילת התהליך.
כך אפשר להגן מפני עליות חדות בנפח התנועה בנקודת הכניסה של שרת ה-API.
קוד מצב HTTP כשמגיעים למגבלה:
500 (שגיאת שרת פנימית) *
500 (שגיאת שרת פנימית) *
חשוב לדעת:
מונה המכסות מאוחסן ב-Cassandra.
מגדירים את המדיניות כך שהמספר ייסונכרן באופן אסינכרוני כדי לחסוך משאבים.
סנכרון אסינכרוני של מונה עלול לגרום לעיכוב בתגובה של הגבלת הקצב, וכתוצאה מכך יכולות להתבצע שיחות שמקצת חורגות מהמגבלה שהגדרתם.
מבצעת צמצום קצב העברת הנתונים על סמך המועד שבו התקבלה התנועה האחרונה. הזמן הזה נשמר לכל מעבד הודעות.
אם מציינים מגבלת קצב של 100 קריאות לשנייה, יתאפשרו רק קריאה אחת לכל 1/100 שנייה (10 אלפיות השנייה) במעבד ההודעות. קריאה שנייה בתוך 10 אלפיות השנייה תידחה.
גם אם מגדירים מגבלת קצב גבוהה לשנייה, בקשות כמעט בו-זמניות עלולות להוביל לדחייה.
* במדיניות המכסות ובמדיניות SpikeArrest, קוד ברירת המחדל של סטטוס ה-HTTP במקרה של חרגה ממגבלת הקצב הוא 500 Internal Server Error כללי.
אפשר לשנות את קוד הסטטוס של כללי המדיניות האלה ל-429 Too Many Requests על ידי הוספת מאפיין ברמת הארגון (features.isHTTPStatusTooManyRequestEnabled). לקוחות Cloud צריכים לפנות אל התמיכה של Apigee Edge כדי להפעיל את המאפיין.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-03-20 (שעון UTC)."],[],[]]