ضبط مدة انتهاء صلاحية ذاكرة التخزين المؤقت على L1 في معالج الرسائل

يوفر Apigee Edge التخزين المؤقت لاستمرار البيانات عبر الطلبات. عند تلقّي بيانات واجهة برمجة التطبيقات، يتم تخزينها في ذاكرة التخزين المؤقت لفترة قصيرة ثم حذفها. يُطلق على الحد الأقصى لمدة الاحتفاظ بجزء من البيانات قبل حذفه اسم انتهاء الصلاحية أو مدة البقاء (TTL) لذاكرة التخزين المؤقت. لكل ذاكرة تخزين مؤقت قيمة TTL افتراضية، ولكن قد تحتاج في بعض الحالات إلى تغيير قيمة TTL لتحسين أداء واجهة برمجة التطبيقات.

أنواع ذاكرة التخزين المؤقت

يتم تخزين بيانات واجهة برمجة التطبيقات في نوعين من ذاكرة التخزين المؤقت:

  • المستوى 1 (L1): ذاكرة التخزين المؤقت في الذاكرة التي تتيح الوصول بشكل أسرع ولكن سعة تخزين أقلّ.
  • المستوى 2 (L2): ذاكرة تخزين مؤقت ثابتة في مخزن بيانات Cassandra، والذي يضم إمكانية وصول أبطأ لكن مساحة التخزين المتاحة أكبر.

عندما يصل إدخال بيانات في ذاكرة التخزين المؤقت L1 إلى L1 TTL، يتم حذفه. ومع ذلك، يتم الاحتفاظ بنسخة من الإدخال في ذاكرة التخزين المؤقت L2 (التي تحتوي على مدة TTL أطول من ذاكرة التخزين المؤقت L1)، حيث تظل متاحة لمعالجات الرسائل الأخرى. راجع مستويات ذاكرة التخزين المؤقت وذاكرة التخزين المؤقت الدائمة للحصول على مزيد من التفاصيل حول ذاكرة التخزين المؤقت.

الحد الأقصى لمدة L1 TTL

في Edge لـ 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).
  • لن يكون للحد الأقصى لمدة L1 TTL أي تأثير إلا إذا كانت قيمتها أقل من تاريخ انتهاء صلاحية ذاكرة التخزين المؤقت بشكل عام.

ضبط الحد الأقصى لمدة L1 TTL

يمكنك ضبط Max L1 TTL على معالج الرسائل على النحو التالي:

  1. افتح ملف الإعداد /opt/apigee/customer/application/message-processor.properties في محرِّر. إذا لم يكن الملف موجودًا، فأنشئه.
  2. اضبط سمة Max L1 TTL على القيمة المطلوبة:
    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

إرشادات ضبط الحدّ الأقصى لمدة L1 TTL

عند ضبط Max L1 TTL، يُرجى مراعاة الإرشادات التالية:

  • تفويت استدعاء إجراء عن بُعد (RPC): إذا لاحظت اختفاء استدعاء إجراء عن بُعد (RPC) بين معالِجات الرسائل (MP) وخاصةً في مراكز بيانات متعددة، فمن المحتمل أن تحتوي ذاكرة التخزين المؤقت L1 على إدخالات قديمة ستظل قديمة إلى أن يتم حذفها من ذاكرة التخزين المؤقت L1. ويؤدي ضبط Max L1 TTL على قيمة أقل إلى فرض إزالة أي إدخالات قديمة واستبدالها بقيم جديدة من ذاكرة التخزين المؤقت L2 في وقت أقرب.
    الحل: خفض conf_cache_max.l1.ttl.in.seconds.
  • حِمل زائد على Casandra: عند ضبط قيمة للحد الأقصى لمدة L1 TTL، ستنتهي صلاحية إدخالات ذاكرة التخزين المؤقت L1 بمعدّل أكبر، ما يؤدي إلى فقدان المزيد من ذاكرة التخزين المؤقت L1 والمزيد من نتائج ذاكرة التخزين المؤقت L2. نظرًا لأنه سيتم الوصول إلى ذاكرة التخزين المؤقت L2 في كثير من الأحيان، ستتحمل Cassandra حملاً متزايدًا.
    الحل: زيادة conf_cache_max.l1.ttl.in.seconds

كقاعدة عامة، اضبط Max L1 TTL إلى قيمة توازن بين وتيرة RPC الضائعة بين MPs مع الحمولة المحتملة على Cassandra.

ننصحك بضبط قيمة conf_cache_max.l1.ttl.in.seconds على 180 ثانية (3 دقائق) على الأقل لمواصلة المعالجة بسلاسة.