פרטים פנימיים של המטמון

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

בנושא הזה מוסבר איך פועל המטמון מתחת למדיניות כמו PopulateCache policy,‏ LookupCache policy,‏ InvalidateCache policy ו-ResponseCache policy.

מידע על מטמונים

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

רמות של מטמון בזיכרון ומטמון קבוע

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

מדיניות שמירה במטמון פועלת באינטראקציה עם מעבדי בקשות ברמה 1, שפועלים באינטראקציה עם אחסון מתמיד ברמה 2
  • רמה 1 היא מטמון בזיכרון (L1) לגישה מהירה. לכל צומת של עיבוד הודעות (MP) יש מטמון משלו בזיכרון, כדי לתת את המענה המהיר ביותר לבקשות.
    • ‫L1 הוא מטמון בזיכרון לזמן קצר (שנייה אחת).
    • כשמגיעים למגבלת הזיכרון, Apigee מסיר מזיכרון רשומות במטמון (למרות שהן עדיין נשמרות במטמון L2 הקבוע) כדי לוודא שהזיכרון יישאר זמין לתהליכים אחרים.
    • ל-L1 יש מטמון קצר טווח של שנייה אחת כדי לבצע חיפושים מהירים יותר לבקשות בו-זמניות עם אותו מפתח מטמון.
  • רמה 2 היא מטמון קבוע (L2) מתחת למטמון בזיכרון. כל הצמתים לעיבוד הודעות חולקים מאגר נתונים במטמון (Cassandra) כדי לשמור את רשומות המטמון.
    • הערכים במטמון נשמרים כאן גם אחרי שהם מוסרים מהמטמון L1, למשל כשמגיעים למגבלות של הזיכרון.
    • המטמון המתמשך משותף למעבדי הודעות (גם באזורים שונים), ולכן רשומות המטמון זמינות בלי קשר לצומת שמקבל בקשה לנתונים שנשמרו במטמון.
    • יכול להיות שרק רשומות בגודל מסוים יישמרו במטמון, ויחולו מגבלות אחרות על המטמון. מידע נוסף זמין במאמר בנושא ניהול מגבלות המטמון.
    • התוכן במטמון בשכבה L2 מוצפן באמצעות אלגוריתם AES-256. הנתונים מפוענחים לפני שהם משמשים את זמן הריצה, ומוצפנים לפני שהם נכתבים ב-L2. תהליך ההצפנה לא גלוי למשתמשים.

איך כללי המדיניות משתמשים במטמון

בהמשך מוסבר איך Apigee מטפל בערכים במטמון בזמן שמדיניות השמירה במטמון פועלת.

  • כשמדיניות כותבת רשומה חדשה למטמון (מדיניות PopulateCache או ResponseCache):
    1. ‫Apigee כותב את הרשומה למטמון L1 בזיכרון רק במעבד ההודעות שטיפל בבקשה. אם מגיעים למגבלות הזיכרון במעבד ההודעות לפני שתוקף הרשומה פג, Apigee מסיר את הרשומה ממטמון L1.
    2. ‫Apigee גם כותב את הרשומה למטמון L2.
  • כשמדיניות קוראת מהמטמון (מדיניות LookupCache או ResponseCache):
    1. מערכת Apigee מחפשת קודם את הרשומה במטמון L1 בזיכרון של מעבד ההודעות שמטפל בבקשה.
    2. אם אין רשומה תואמת בזיכרון, Apigee מחפש את הרשומה במטמון הקבוע ברמה 2 (L2).
    3. אם הרשומה לא נמצאת במטמון הקבוע:
      • המדיניות LookupCache: לא מתבצע אחזור של ערך מהמטמון.
      • מדיניות ResponseCache: ‏ Apigee מחזיר את התגובה בפועל מהיעד ללקוח ומאחסן את הרשומה במטמון עד שהיא פגה או עד שהיא נפסלת.
  • כשמדיניות מעדכנת או מבטלת רשומה קיימת במטמון (InvalidateCache policy,‏ PopulateCache policy או ResponseCache policy):
    1. מעבד ההודעות שמקבל את הבקשה מוחק את הרשומה ממטמון L1 בזיכרון של שנייה אחת, וגם מוחק את הרשומה ממטמון L2.
    2. אחרי עדכון או ביטול תוקף, יכול להיות שמעבדי ההודעות האחרים עדיין יחזיקו במטמון L1 בזיכרון.
    3. מכיוון שתוקף הנתונים ב-L1 מוגדר לפוג תוך שנייה אחת, לא צריך אירוע מחיקה או עדכון כדי להסיר את הרשומה מ-L1.

ניהול מגבלות המטמון

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

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

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

  • מטמון מתמיד (L2). רשומות שמוצאות מהמטמון בזיכרון נשארות במטמון הקבוע בהתאם להגדרות של אורך החיים (TTL) שניתנות לשינוי.

אופטימיזציות שאפשר להגדיר

בטבלה הבאה מפורטות ההגדרות שבהן אפשר להשתמש כדי לבצע אופטימיזציה של ביצועי מטמון.

הגדרה תיאור הערות
תפוגה מציין את אורך החיים (TTL) של רשומות במטמון. ללא