سؤال

Q1:هل أنا على حق فقط هذا البائعين دعم السبات L2 ذاكرة التخزين المؤقت على المجموعة ؟

  • الطين على السبات (توازي)
  • SwarmCache (لا صدر منذ عام 2003)
  • جبوس ذاكرة التخزين المؤقت 1.x
  • جبوس ذاكرة التخزين المؤقت 2

Q2:هل هناك أي بدائل السبات L2 ذاكرة التخزين المؤقت ؟ (ربما بعض DB التخزين المؤقت؟)

هل كانت مفيدة؟

المحلول

Q1.EhCache يعمل بشكل جيد جدا كما السبات L2 ذاكرة التخزين المؤقت الموزعة.نحن نستخدم هذا المشروع.


Q2.عدة مخابئ محتملة.

  • جميع بيانات تفعل الكثير من التخزين المؤقت داخليا, لذلك لا تقلق بشأن هذا الجزء.

ومع ذلك ، فإن مشكلة مع قاعدة البيانات ذاكرة التخزين المؤقت هو جسديا على خادم قاعدة البيانات ، لذلك كل استعلام ينطوي على شبكة الاتصال (الكمون ، عرض النطاق الترددي ..).هذا هو بيت القصيد من مخابئ على التطبيق الملقم.


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

  • عندما السبات L2 غير مناسب ، نحن نستخدم نفس EhCache المكتبة إلى ذاكرة التخزين المؤقت البيانات (التي هي ليست بالضبط الكيانات).أمثلة من حالات الاستخدام:
    • عندما يكون جدول الكبير (رقم قياسي طول و عدد), واستخدام الذاكرة لن تسمح ذاكرة التخزين المؤقت بالكامل ولكن التخزين المؤقت فقط ثلاثة حقول كافة السجلات على ما يرام.يمكن أن يكون أن هذه الحقول هي الوصول إليها في كثير من الأحيان ، أو غير قابل للتغيير...
    • عندما يكون لدينا العديد من قراءة بالوصول إلى ذاكرة التخزين المؤقت كل من شأنه أن يؤدي إلى حساب (على L2 ذاكرة التخزين المؤقت) نظرا الكيانات لدينا :حساب النتيجة يمكن أن تكون مخزنة في ذاكرة التخزين المؤقت.(نموذجي على سبيل المثال حيث الحساب يتطلب التفاصيل من الجداول الأخرى ، ولكن التفاصيل لا تستخدم في النتيجة النهائية ، لذلك ذاكرة التخزين المؤقت لا تخزن هذه التفاصيل)
    • عندما الكيانات في الجدول تجمع منطقيا من قبل فئات, و نريد أن الطلب ذاكرة التخزين المؤقت فئة واحدة في وقت واحد بدلا من العادية L2 ذاكرة التخزين المؤقت السياسات التي من شأنها أن تكون كيان واحد في وقت واحد.

في توزيع السياق هذا في كثير من الأحيان يترجم إلى إبطال a الفئة في وقت واحد الكيانات تعديل ، وهو وظيفيا من المنطقي بالنسبة لنا (و ضروري الأداء وإلا كنا يجب أن يبطل كل هذه الكيانات ؛ وذلك لأن ذاكرة التخزين المؤقت يبطل المنطقة بأسرها ، أو كائن معين ، ولكن في بين عليك أن الحلقة التي هي سيئة الأداء)

وغيرها أنا متأكد ...

حتى هذه الحالة ليست عن كثب قاعدة البيانات ذات الصلة ، فإنه عادة ما لا متجر لدينا السبات الكيانات.نضع في الطبقة التجارية (وليس الوصول إلى البيانات أو Daos) ، وجعلها متاحة مباشرة إلى الأعمال رموز.علما بأن لنا أنها ليست شفافة ذاكرة التخزين المؤقت ، ولكن دعوة صريحة الخدمات التجارية (المسؤولة عن هذا ذاكرة التخزين المؤقت :تحميل ما إذا كانت البيانات غير موجودة ، إبطال حسب الحاجة) أن يفعل العمليات أو تقديم القيم.

متعة خيوط القضية في ذاكرة التخزين المؤقت :لأن هذا ذاكرة التخزين المؤقت يتم الوصول إليها من قبل لدينا مئات المواضيع على شبكة الإنترنت ، فإنه يحتاج إلى أن مؤشر الترابط-الآمن.ربما كنت أعرف لماذا مؤشر الترابط-الآمن القيمة إما ثابتة أو المستنسخة في كل مكالمة (التي غالبا ما هي مشكلة الأداء).لذلك كل أعمالنا مخابئ استخدام الكائنات ثابتة و أداء رائع.

نصائح أخرى

يمكنك أيضا استخدام [Infinispan (تطور جبوس ذاكرة التخزين المؤقت) كما 2nd level cache موفر!][1]

[1]:انظر http://infinispan.blogspot.com/2009/10/infinispan-based-hibernate-cache.html

EhCache وقد وزعت الوضع, ولكن لست متأكدا إذا كان هذا الدعم مع السبات.أنا لا أرى لماذا يجب أن لا تعمل ، على الرغم من.

هل قمت بحذف JBossCache 3-بالنسبة لبعض السبب ؟

السبات-رديس ليب سيكون الخيار الأمثل.انها رديس بناء ذاكرة التخزين المؤقت.

لماذا رديس?انها اشتعلت فيه النيران بسرعة ، يعمل في سحابة لديها استعداد-حل سحابة مثل AWS Elasticache, لذلك أنت لا تحتاج إلى إدارتها من قبل نفسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top