תיוג בצד השרת: שליטה בזרימה בלי הבטחת תאימות

בקצרה

העברת עיבוד תגיות לשרת משנה ארכיטקטורה. היא אינה הופכת מידע אוטומטית לשלם, אנונימי או תואם ואינה מחליפה בחירות של אנשים.

ארכיון מודיעין ריק עם תיקים ומפות
במאמר זה

מפו לפני העברה

איסוף עשוי להישאר בדפדפן, להמשיך לשרת ואז ליעדים. Consent Mode מעביר מצבים ומתאים התנהגות; אינו מספק לבדו ממשק בחירה או אימות משפטי.

שלבבקרהראיה מבוקשת
דפדפן או יישוםשדות ובחירות שנאספו.בקשות שנשלחו בפועל.
שרת איסוףאימות, סינון וגישה.אירועים שאושרו או נדחו.
יעדמידע שהועבר בפועל.תוכן וכללי הסכמה.
תפעולשמירה, הרשאות ושחזור.בדיקות מחיקה, כשל וגישה.

בדקו מה נשלח בפועל

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

העריכו יתרונות וחובות בנפרד

בדקו ביצועים במסלולים דומים; איסוף ראשוני בדפדפן עשוי להישאר נחוץ. דומיין צד ראשון אינו פטור. בצרפת פטור לכלי מדידת קהל מסוימים הוא מותנה ואינו מכסה אוטומטית תיוג פרסומי.

מקורות ראשוניים

תיוג בצד השרת עדיין זקוק לבדיקת זרימה.

העברת תגים לשרת אינה הופכת אוטומטית את המדידה לתואמת או מינימלית. בדיקת בקשות שנפלטו, נמענים, מזהים והתנהגות לאחר סירוב בפריסה בפועל.

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

מקור ראשוני: CNIL — Outils de mesure d’audience et traceurs. שיטה קשורה: קריאת המדריך המעשי.

מכסות ומגבלות API

המגבלות משפיעות על קיבולת, ניסיונות וחלוקה בין לקוחות.

  • תעדו אם המכסה חלה על חשבון, מפתח או משאב וכמה פעולות מקבילות הלקוח מאפשר. תור ללא גבול יכול להעמיס על השירות גם בקצב ממוצע נמוך.
  • בתשובת 429 פרשו Retry-After אם קיים והמתינו לפני בקשה נוספת. שלבו המתנה גדלה ופיזור בין לקוחות עם מספר ניסיונות מרבי ומועד סיום כולל.
  • כשחסרה תשובת כתיבה, בדקו מצב לפני חזרה. בבדיקה מדומה שלבו מכסות, תשובות מאוחרות וביטול; התור צריך להסתיים ללא השפעות כפולות.

מקרה קבלה שניתן לשחזר

דוגמה בדיונית: הנתונים אינם מתארים לקוח או תוצאה שנצפתה.

הצגת נתוני המקרה
{
    "http_status": 429,
    "retry_after_seconds": 30,
    "workers": 20,
    "retry_budget": 3,
    "retry_budget_scope": "per_worker_retries_excluding_initial_request",
    "scheduling_example": {
        "response_received_at_seconds": 0,
        "illustrative_retry_seconds": [
            30,
            31,
            32,
            33,
            34
        ],
        "workers_per_second": 4,
        "alternative_deadline_seconds": 25,
        "total_attempts_if_all_retries_used": 80
    }
}

החלטה צפויה

המתינו 30 שניות, פזרו ניסיונות של 20 עובדים והגבילו את מספר החזרות.

עשרים לקוחות: לפזר ולספור ניסיונות

דוגמה בדויה: 20 עובדים מקבלים בזמן +0 s תגובת 429 עם Retry-After: 30. הזמנים מציגים פיזור אפשרי ואינם מבטיחים קיבולת שרת. לכל עובד 3 ניסיונות חוזרים בנוסף לבקשה הראשונה.

מדיניותחישוב או תזמוןהשפעה
ניסיון חוזר בו־זמני20 × 1 = 20 @ +30 sהמתנה של 30 שניות מכבדת את ההשהיה, אך כל 20 הבקשות חוזרות יחד והעומס עלול לחזור.
ניסיון חוזר מפוזר4 × 5 = 20 @ +30…+34 sארבע בקשות בשנייה במשך חמש שניות מפזרות 20 ניסיונות בלי להפחית את מספרם. לוח הזמנים להמחשה אינו מחליף מדיניות השהיה גדלה עם שונות אקראית.
מועד סיום אחרי 25 שניות25 s < 30 s → 0אם הזמן שנותר קצר מ־30 השניות הנדרשות, עצרו או דחו בהתאם לחוזה. אל תקצרו את ההמתנה כדי לעמוד במועד.
תקציב מרבי20 × (1 + 3) = 80ניצול כל הניסיונות נותן 20 בקשות ראשונות ועוד 60 חזרות: 80 בקשות. התקרה אינה מבטיחה הצלחה או חזרה בטוחה.

נוהל בדיקה

  1. תעדו תחום מכסה ותקציב ניסיונות.
  2. מצו מכסה רק בבדיקה מורשית.
  3. שמרו 429, Retry-After ורצף מוגבל. הבחינו בין הגבלה טכנית לתוצאה עסקית: מכסה שנוצלה אינה אמורה להפוך לתשובה המדווחת על מלאי אפס.
  4. דמו בלי עומס חיצוני ארבע שכבות עם שלוש קריאות כוללות לכל אחת וספרו ניסיונות.
  5. העבירו משימה בדיונית בתור מעבר למועד ובדקו שלא מתחילה פעולה חדשה.
  6. השיבו עבודה מורשית בהדרגה אחרי תקלה מדומה ושמרו קריאות, מועדים ותוצאות ייחודיות.

AWS — Timeouts, retries, and backoff with jitter

האם 429 מוכיח שכתיבה קודמת לא בוצעה?

לא. הפעולה ללא תשובה דורשת התאמה נפרדת; תשובה לניסיון אחר אינה מוכיחה את מצבה.

מקור ראשוני: IETF — RFC 6585, HTTP 429. שיטה קשורה: קריאת המדריך המעשי.

גבולות מדידת פחמן

השוואה דורשת גבולות ויחידה תפקודית משותפים.

  • רשמו רכיבים, אזור, תקופה ויחידה תפקודית, למשל פעולה שהושלמה. השוו תרחישים המספקים אותה רמת שירות.
  • רשמו אנרגיה, מקדם פליטות וחלק חומרה שהוקצה. הפרידו מדידה ואומדן; תעדו החרגות בלי להניח השפעה אפסית.
  • דוגמה בדיונית: (12 + 3) gCO2e / 5 פעולות = 3 gCO2e לפעולה. שנו הנחות לא ודאיות והשוו גם פליטות כוללות.

מקרה קבלה שניתן לשחזר

דוגמה בדיונית: הנתונים אינם מתארים לקוח או תוצאה שנצפתה.

הצגת נתוני המקרה
{
    "functional_unit": "accepted_task",
    "energy_kWh": 2,
    "intensity_gCO2e_per_kWh": 100,
    "embodied_gCO2e": 50,
    "accepted_tasks": 100,
    "SCI_gCO2e_per_task": 2.5
}

החלטה צפויה

(2 × 100 + 50)/100 = 2.5 gCO2e למשימה, רק בגבולות שהוצהרו.

נוהל בדיקה

  1. הגדירו גבולות, יחידה תפקודית ומקדמים.
  2. הפרידו אנרגיה, פליטות מגולמות ותוצאות.
  3. שמרו מקור וחישוב בלי קיזוז מובלע.

Green Software Foundation — Software Carbon Intensity

מקור ראשוני: Green Software Foundation — Software Carbon Intensity. שיטה קשורה: קריאת המדריך המעשי.

API: למנוע ניסיונות מוכפלים בין שכבות

יישום, SDK, פרוקסי ושירות יכולים לחזור על אותה קריאה. ארבע שכבות בדיוניות עם שלושה ניסיונות כוללים לכל אחת יוצרות עד 81 קריאות לתלות שנכשלה. הוסיפו תקציב משותף ומועד שימושי לבקרת מכסות.

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

האם שלושה ניסיונות לשכבה הם שלושה בסך הכול?

לא. ארבע שכבות בדיוניות עם שלושה ניסיונות כוללים נותנות עד 3⁴ = 81 קריאות אחרונות.

האם פקיעת משימה מבטלת השפעה מרוחקת?

לא בהכרח. היא מונעת עבודה חדשה לא נחוצה; פעולה שהחלה דורשת בדיקת מצב ופיצוי אם אפשר.

מקור ראשוני: AWS — Timeouts, retries, and backoff with jitter. שיטה קשורה: קריאת המדריך המעשי.