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

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

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

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

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

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

الحد الأقصى لمدة البقاء في المستوى الأول

في Edge for Private Cloud، يمكنك ضبط الحد الأقصى لمدة البقاء (TTL) في ذاكرة التخزين المؤقت L1 لكل معالج رسائل باستخدام السمة Max L1 TTL (conf_cache_max.l1.ttl.in.seconds). ستنتهي صلاحية الإدخال في ذاكرة التخزين المؤقت L1 بعد الوصول إلى قيمة Max L1 TTL وسيتم حذفه.

ملاحظات:

  • يكون الحد الأقصى لوقت TTL في L1 غير مفعَّل تلقائيًا (مع القيمة -1)، وفي هذه الحالة يتم تحديد وقت TTL لإدخال في ذاكرة التخزين المؤقت L1 من خلال إعدادات انتهاء الصلاحية لسياسة PopulateCache (لكل من ذاكرة التخزين المؤقت L1 وL2).
  • لا يكون للحد الأقصى لعمر التخزين المؤقت في المستوى الأول أي تأثير إلا إذا كانت قيمته أصغر من انتهاء صلاحية ذاكرة التخزين المؤقت الإجمالية.

ضبط الحد الأقصى لمدة البقاء (TTL) في المستوى 1

يمكنك ضبط الحد الأقصى لـ L1 TTL على معالج الرسائل على النحو التالي:

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

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

كقاعدة عامة، اضبط الحد الأقصى لـ L1 TTL على قيمة توازن بين معدل تكرار أخطاء RPC بين نقاط القياس والحمل المحتمل على Cassandra.

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