הגדרת תפוגה של מטמון L1 במעבד הודעות

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

סוגי מטמון

נתוני API מאוחסנים בשני סוגים של מטמון:

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

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

TTL מקסימלי L1

ב-Edge לענן פרטי, אפשר להגדיר את ה-TTL המקסימלי במטמון L1 לכל הודעה מעבד באמצעות מאפיין ה-TTL של Max L1 (conf_cache_max.l1.ttl.in.seconds). התוקף של רשומה במטמון L1 יפוג אחרי שתגיע לערך TTL המקסימלי L1, והיא תימחק.

הערות:

  • כברירת מחדל, ה-TTL של Max L1 מושבת (עם הערך -1), במקרה כזה, נקבע ה-TTL של רשומה במטמון L1 לפי המדיניות PopulateCache הגדרות תפוגה (למטמון L1 ו-L2).
  • ל-TTL לכל היותר מסוג L1 יש השפעה רק אם הערך שלו קטן יותר מתפוגת התוקף הכוללת של המטמון.

הגדרת TTL מקסימלי L1

במעבד הודעות אפשר להגדיר את Max L1 TTL באופן הבא:

  1. פותחים את קובץ תצורה /opt/apigee/customer/application/message-processor.properties בעורך. אם הקובץ לא קיים, יוצרים אותו.
  2. מגדירים את מאפיין ה-TTL של Max L1 לערך הרצוי:
    conf_cache_max.l1.ttl.in.seconds = 180

    מומלץ להשתמש בערך 180 שניות.

  3. צריך לוודא שקובץ המאפיינים נמצא בבעלות ה-apigee משתמש:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. מפעילים מחדש את מעבד ההודעות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

הנחיות להגדרת TTL מקסימלי L1

כשמגדירים TTL של Max L1, חשוב לזכור את ההנחיות הבאות:

  • חסרות RPC: אם יש שגיאות בקריאה לשירות מרוחק (RPC) בין מעבדי הודעות (MPs) — במיוחד במרכזי נתונים מרובים – ייתכן שבמטמון L1 יש רשומות לא פעילות, שיישארו לא פעילים עד שהם יימחקו ממטמון L1. הגדרת TTL מקסימלי L1 לערך נמוך יותר מאלצת יש להסיר רשומות לא עדכניות ולהחליף אותן בערכים חדשים ממטמון L2 בהקדם.
    הפתרון: הפחתת conf_cache_max.l1.ttl.in.seconds.
  • עומס יתר ב-Casendra: כשמגדירים ערך ל-Max L1 TTL, L1 רשומות במטמון יפוגו לעיתים קרובות יותר, שמובילות ליותר חסרי מטמון L1 ולעוד היטים של מטמון L2. מכיוון שמטמון L2 ייפגע בתדירות גבוהה יותר, הפעילות של Cassandra תגדל.
    הפתרון: מגדילים את הערך של conf_cache_max.l1.ttl.in.seconds

באופן כללי, צריך לכוונן את ה-TTL של Max L1 לערך שמאזן את התדירות של RPC שהוחמצו בין MPs עם העומס הפוטנציאלי על Cassandra.

מומלץ להגדיר את הערך של conf_cache_max.l1.ttl.in.seconds כערך לפחות 180 שניות (3 דקות) כדי להמשיך את העיבוד בצורה חלקה.