פתרון בעיות בתצוגות אזוריות של משאבים גלובליים

במאמר הזה מוסבר איך לפתור בעיות שקשורות לעקביות, לעיכובים בשכפול ולמכסות של מדדים כשמבצעים שאילתות לגבי משאבים גלובליים דרך נקודות קצה ל-API לתצוגה אזורית של Compute Engine. למידע נוסף על נקודות קצה אזוריות לקריאה בלבד, קראו את המאמר תצוגות אזוריות של משאבים גלובליים.

עיכובים בשכפול או משאבים חסרים

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

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

השכפול האסינכרוני הזה אומר שהתצוגות האזוריות הן מודל עקביות הדרגתי. זמן האחזור של שכפול P99 ממסד הנתונים הגלובלי המרכזי לרפליקות אזוריות הוא בדרך כלל פחות מ-60 שניות.

פתרון: כדי לפתור את הבעיה, נסו את אחת מהאפשרויות הבאות:

  • המתנה לשכפול: רוב עדכוני השכפול מסתיימים תוך 60 שניות. אם סקריפט אוטומטי או עומס עבודה של לקוח מבצעים שאילתה על משאב שנוצר לאחרונה, צריך לוודא שהלקוח מטמיע לוגיקה של ניסיון חוזר עם השהיה אקספוננציאלית לפני ניסיון חוזר (backoff).
  • הסבר על חלופת ברירת המחדל השקופה: אם בקשת GET מפורשת למזהה משאב ספציפי שמטרגט רפליקה אזורית גורמת לאי מציאה במטמון, Compute Engine מנסה באופן אוטומטי לבצע קריאה חלופית למסד הנתונים הגלובלי המרכזי באותה עסקה.
  • שליחת שאילתות לנקודות קצה גלובליות כדי להשיג מודל עקביות חזק: אם צינור עיבוד הנתונים לפריסה דורש עקביות מיידית של קריאה אחרי כתיבה ללא זמן אחזור של שכפול, צריך לשלוח שאילתות ישירות לנקודות קצה קנוניות גלובליות במקום לתצוגות אזוריות. לדוגמה, שאילתה projects.get, images.get או images.list.

404 Not Found תגובות

יכול להיות שתקבלו קוד סטטוס 404 Not Found HTTP כשאתם מנסים לאחזר תמונה ספציפית או תצוגת פרויקט.

שגיאת 404 Not Found יכולה להתרחש מהסיבות הבאות:

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

פתרון: כדי לפתור את הבעיה, נסו את הפתרונות הבאים:

  1. כדי לוודא שהמשאב המבוקש קיים באופן גלובלי, מריצים בקשה גלובלית רגילה של describe או list – לדוגמה, gcloud compute images describe IMAGE_NAME או gcloud compute project-info describe --project=PROJECT_ID.
  2. בודקים את נתיב כתובת ה-URL של הבקשה כדי לוודא שמחרוזת היעד REGION תקינה ופעילה.
  3. אם המשאב נוצר לאחרונה, נסו שוב את הבקשה אחרי 60 שניות.

חסר מערך quota בתגובות של projectViews

כששולחים שאילתה למשאב compute.Project באמצעות נקודות קצה אזוריות של projectViews.get, המערך quota מוחרג מהתשובה.

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

פתרון: כדי לפתור את הבעיה:

  • חשוב לוודא שהאפליקציות לא מצפות למערך quota בתגובות שמוחזרות על ידי נקודות קצה (endpoints) אזוריות של projectViews.
  • כדי לאחזר נתוני תצורה מדויקים של מכסות ומדדי שימוש בזמן אמת בכל האזורים והאזורים, אפשר לשלוח שאילתה לנקודת הקצה הגלובלית projects.get או לעקוב אחרי מדדי המכסות של Compute Engine API ב-Cloud Monitoring.

המאמרים הבאים