ב-Apigee Edge יש מטמון לשמירת נתונים בין בקשות. כשנתוני ה-API מתקבלים, הם נשמרים במטמון לפרק זמן קצר ואז נמחקים. פרק הזמן המקסימלי שבו נתון מסוים נשמר לפני שהוא נמחק נקרא תפוגה או זמן חיים (TTL) של המטמון. לכל מטמון יש TTL שמוגדר כברירת מחדל, אבל במקרים מסוימים יכול להיות שתצטרכו לשנות את ערך ה-TTL כדי לשפר את ביצועי ה-API.
סוגי מטמון
נתוני ה-API מאוחסנים בשני סוגים של מטמון:
- רמה 1 (L1): מטמון בזיכרון, עם גישה מהירה יותר אבל פחות נפח אחסון זמין.
- רמה 2 (L2): מטמון מתמיד במאגר נתונים של Cassandra, עם גישה איטית יותר אבל קיבולת אחסון זמינה גדולה יותר.
כשערך נתונים במטמון L1 מגיע ל-TTL של L1, הוא נמחק. עם זאת, עותק של הרשומה נשמר במטמון L2 (שיש לו TTL ארוך יותר מאשר למטמון L1), שבו הוא נשאר נגיש למעבדי בקשות אחרים. למידע נוסף על המטמון, ראו רמות מטמון בזיכרון ורמות מטמון קבועות.
Max L1 TTL
ב-Edge for Private Cloud, אתם יכולים להגדיר את ה-TTL המקסימלי של מטמון L1 לכל מעבד בקשות באמצעות המאפיין Max L1 TTL (conf_cache_max.l1.ttl.in.seconds).
רשומה במטמון L1 תפוג אחרי שתגיע לערך Max L1 TTL ותימחק.
הערות:
- כברירת מחדל, הערך של Max L1 TTL מושבת (עם הערך
-1), ובמקרה כזה ה-TTL של רשומה במטמון L1 נקבע לפי הגדרות התפוגה של המדיניות PopulateCache (גם למטמון L1 וגם למטמון L2). - הערך של Max L1 TTL משפיע רק אם הוא קטן יותר מהתפוגה הכוללת של המטמון.
הגדרת TTL מקסימלי ברמה 1
כדי להגדיר את הערך של Max L1 TTL במעבד בקשות:
- פותחים את
קובץ התצורה
/opt/apigee/customer/application/message-processor.propertiesבכלי לעריכה. אם הקובץ לא קיים, יוצרים אותו. - מגדירים את המאפיין Max L1 TTL לערך הרצוי:
conf_cache_max.l1.ttl.in.seconds = 180
אנחנו ממליצים על הערך
180שניות. - מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש apigee:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- מפעילים מחדש את מעבד הבקשות:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
הנחיות להגדרת TTL מקסימלי ברמה 1
כשמגדירים את הערך של Max L1 TTL, חשוב לזכור את ההנחיות הבאות:
- פספוסים של RPC: אם אתם מבחינים בפספוסים של קריאות לשירות מרוחק (RPC) בין מעבדי בקשות (MP), במיוחד בכמה מרכזי נתונים, יכול להיות שבמטמון L1 יש רשומות לא עדכניות שיישארו לא עדכניות עד שהן יימחקו ממטמון L1. אם מגדירים ערך נמוך יותר ל-Max L1 TTL, כל הרשומות הישנות יוסרו ויוחלפו בערכים חדשים מהמטמון של L2 מוקדם יותר.
הפתרון: מקטינים את הערך שלconf_cache_max.l1.ttl.in.seconds. - עומס יתר על Casandra: כשמגדירים ערך ל-Max L1 TTL, התפוגה של הרשומות במטמון L1 תתרחש בתדירות גבוהה יותר, מה שיוביל ליותר אי מציאות במטמון L1 וליותר מציאות במטמון L2. מכיוון שהמטמון של L2 יופעל לעיתים קרובות יותר, העומס על Cassandra יגדל.
הפתרון: מגדילים את הערך שלconf_cache_max.l1.ttl.in.seconds
ככלל, כדאי לכוון את Max L1 TTL לערך שמאזן בין התדירות של פספוסי RPC בין מעבדי ההודעות לבין העומס הפוטנציאלי על Cassandra.
כדי שהעיבוד יפעל בצורה חלקה, מומלץ להגדיר את הערך של conf_cache_max.l1.ttl.in.seconds ל-180 שניות (3 דקות) לפחות.