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

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

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

מטמון משותף ומטמון סביבתי

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

  • מטמון משותף: כברירת מחדל, לשרתי ה-proxy יש גישה למטמון משותף אחד בכל סביבה. המטמון המשותף מתאים לתרחישי שימוש בסיסיים.

    אפשר לעבוד עם המטמון המשותף רק באמצעות כללי מדיניות בנושא שמירת נתונים במטמון, ולא באמצעות API לניהול. כדי שמדיניות קביעת המטמון תשתמש במטמון המשותף, פשוט משמיטים את הרכיב <CacheResource> של המדיניות.

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

    כשיוצרים מטמון סביבה, מגדירים את מאפייני ברירת המחדל שלו. כדי שמדיניות אחסון במטמון תשתמש במטמון הסביבה, צריך לציין את שם המטמון ברכיב <CacheResource> של המדיניות.

מידע על הצפנת מטמון

Edge for Public Cloud: מטמון מוצפן רק בארגונים שמופעלים בהם PCI ו-HIPAA. ההצפנה בארגונים האלה מוגדרת במהלך הקצאת ההרשאות לארגון.

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

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

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

אולי יעניין אותך גם המאמר Apigee Edge Caching In Detail (שמירה במטמון ב-Apigee Edge בפירוט) בקהילת Apigee.

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

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

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

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

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

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

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

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

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

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

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