אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X. info
בנושא הזה נסביר איך פועל המטמון ברקע של כללי מדיניות כמו Populate Cache policy, LookupCache policy, InvalidateCache policy ו-Response Cache policy.
מטמון משותף ומטמון סביבה
בכל מדיניות שמירת נתונים שתקבעו תוכלו להשתמש באחד משני סוגי המטמון: מטמון משותף כלול שיש לאפליקציות גישה אליו, ומטמון אחד או יותר ברמת הסביבה שתיצרו.
-
מטמון משותף: כברירת מחדל, לשרתי ה-proxy יש גישה למטמון משותף אחד בכל סביבה. המטמון המשותף מתאים לתרחישי שימוש בסיסיים.
אפשר לעבוד עם המטמון המשותף רק באמצעות מדיניות מטמון, ולא באמצעות ה-API לניהול. כדי לאפשר למדיניות שמירת במטמון להשתמש במטמון המשותף, פשוט משמיטים את הרכיב
<CacheResource>
של המדיניות. -
אחסון במטמון ברמת הסביבה: כשרוצים להגדיר מאפייני מטמון עם ערכים שבוחרים, אפשר ליצור מטמון ברמת הסביבה. מידע נוסף על יצירת מטמון זמין במאמר יצירה ועריכה של מטמון סביבה.
כשיוצרים מטמון סביבה, מגדירים את מאפייני ברירת המחדל שלו. כדי לאפשר למדיניות שמירת ב-cache להשתמש במטמון הסביבה, צריך לציין את שם המטמון ברכיב
<CacheResource>
של המדיניות.
מידע על הצפנת מטמון
Edge לענן ציבורי: המטמון מוצפן רק בארגונים שתומכים ב-PCI וב-HIPAA. ההצפנה לארגונים האלה מוגדרת במהלך הקצאת המשאבים לארגון.
רמות מטמון בזיכרון ורמות מטמון קבוע
גם המטמון המשותף וגם המטמון של הסביבה מבוססים על מערכת דו-שכבתית שמכילה שכבה בזיכרון ושכבה קבועה. כללי המדיניות פועלים בשתי הרמות כמסגרת משולבת. Edge מנהל את הקשר בין הרמות.
-
רמה 1 היא מטמון בזיכרון (L1) לגישה מהירה. לכל צומת לעיבוד הודעות (MP) יש מטמון משלו בזיכרון (מוטמע מ-Ehcache) כדי לספק את התגובה המהירה ביותר לבקשות.
- בכל צומת, אחוז מסוים מהזיכרון שמור לשימוש במטמון.
- כשמגיעים למגבלת הזיכרון, Apigee Edge מסיר מהזיכרון את הרשומות במטמון (אבל הן עדיין נשמרות במטמון הקבוע ברמה 2) כדי לוודא שהזיכרון יישאר זמין לתהליכים אחרים.
- הרשומות מוסרות לפי סדר הזמן שחלף מאז הגישה האחרונה, והרשומות הישנות ביותר מוסרות קודם.
- המטמון הזה מוגבל גם במספר הרשומות במטמון.
-
רמה 2 היא מטמון מתמיד (L2) מתחת למטמון בזיכרון. כל הצמתים לעיבוד הודעות משתפים מאגר נתונים של מטמון (Cassandra) לשמירת רשומות מטמון.
- רשומות במטמון נשמרות כאן גם אחרי שהן הוסרו מהמטמון L1, למשל כשמגיעים למגבלות בזיכרון.
- המטמון הקבוע משותף בין מעבדי ההודעות (גם באזורים שונים), ולכן רשומות המטמון זמינות ללא קשר לצומת שמקבל את הבקשה לנתונים ששמורים במטמון.
- אפשר לשמור במטמון רק רשומות בגודל מסוים, ויש מגבלות אחרות על המטמון. ניהול מגבלות המטמון
כדאי גם לעיין במאמר Apigee Edge Caching In Detail בקהילת Apigee.
איך כללי המדיניות משתמשים במטמון
בהמשך מוסבר איך Apigee Edge מטפל ברשומות במטמון כשמדיניות האחסון במטמון פועלת.
- כשמדיניות כותבת רשומה חדשה במטמון (מדיניות PopulateCache או מדיניות ResponseCache):
- Edge כותב את הרשומה במטמון L1 בזיכרון רק במעבד ההודעות שטיפל בבקשה. אם מגבלות הזיכרון במעבד ההודעות מגיעות למיצוי לפני שתוקף הרשומה פג, Edge מסיר את הרשומה מהמטמון L1.
- Edge גם כותב את הרשומה במטמון L2.
- כשמדיניות קוראת מהמטמון (מדיניות LookupCache או ResponseCache):
- Edge מחפש קודם את הרשומה במטמון L1 בזיכרון של מעבד ההודעות שמטפל בבקשה.
- אם אין רשומה תואמת בזיכרון, Edge מחפש את הרשומה במטמון הקבוע של L2.
- אם הרשומה לא נמצאת במטמון הקבוע:
- המדיניות LookupCache: לא מתבצע אחזור של ערך מהמטמון.
- מדיניות ResponseCache: Edge מחזיר ללקוח את התגובה בפועל מהיעד ומאחסן את הרשומה במטמון עד שתוקפה יפוג או שהיא תבוטל.
- כשמדיניות מעדכנת או מבטלת רשומה קיימת במטמון (מדיניות InvalidateCache, PopulateCache או ResponseCache):
- מעבד ההודעות שמקבל את הבקשה שולח שידור כדי לעדכן או למחוק את הרשומה במטמון L1 אצלו ובכל מעבדי ההודעות האחרים בכל האזורים.
- אם השידור מצליח, כל מעבד הודעות שמקבל את ההודעה מעדכן או מסיר את הרשומה במטמון L1.
- אם השידור נכשל, ערך המטמון שהתבטל נשאר במטמון L1 במעבדי ההודעות שלא קיבלו את השידור. במטמון L1 של מעבדי ההודעות האלה יהיו נתונים לא עדכניים עד שיפוג זמן החיים (TTL) של הרשומה או שהיא תוסר כשהמערכת תגיע למגבלות הזיכרון של מעבד ההודעות.
- השידור גם מעדכן או מוחק את הרשומה במטמון L2.
- מעבד ההודעות שמקבל את הבקשה שולח שידור כדי לעדכן או למחוק את הרשומה במטמון L1 אצלו ובכל מעבדי ההודעות האחרים בכל האזורים.
ניהול מגבלות המטמון
באמצעות הגדרה, אפשר לנהל היבטים מסוימים של המטמון. נפח האחסון הכולל שזמין למטמון בזיכרון מוגבל על ידי משאבי המערכת ואי אפשר להגדיר אותו. האילוצים הבאים חלים על המטמון:
- מגבלות מטמון: חלות מגבלות שונות על המטמון, כמו גודל השם והערך, המספר הכולל של המטמון, מספר הפריטים במטמון ותוקף התוקף.
-
מטמון בזיכרון (L1). לא ניתן להגדיר מגבלות זיכרון למטמון. Apigee מגדירה את המגבלות לכל מעבד הודעות שמארח מטמון לכמה לקוחות.
בסביבת ענן מתארחת, שבה מטמון בזיכרון לכל הפריסות של הלקוחות מתארח במספר מעבדי הודעות משותפים, לכל מעבד יש ערך סף של אחוז הזיכרון שניתן להגדיר ב-Apigee, כדי לוודא שהמטמון לא צורך את כל הזיכרון של האפליקציה. כשהסף של מעבד הודעות מסוים מגיע, רשומות המטמון מועברות מהזיכרון לפי העיקרון 'השימוש האחרון הוא הקובע'. רשומות שהוצאו מהזיכרון נשארות במטמון L2 עד שתוקפן יפוג או שהן יהפכו ללא חוקיות.
- מטמון מתמיד (L2). רשומות שהוצאו מהמטמון בזיכרון ימשיכו להישאר במטמון הקבוע בהתאם להגדרות של אורך החיים (TTL) שניתנות להתאמה אישית.
אופטימיזציות שניתן להגדיר
בטבלה הבאה מפורטות ההגדרות שאפשר להשתמש בהן כדי לבצע אופטימיזציה של ביצועי המטמון. אפשר לציין ערכים להגדרות האלה כשיוצרים מטמון סביבה חדש, כפי שמתואר בקטע יצירה ועריכה של מטמון סביבה.
הגדרה | תיאור | הערות |
---|---|---|
תוקף הרישיון | מציין את משך החיים של רשומות במטמון. | ללא. |